Перейти к собственно контенту

AgR^ Live Blog

Общественные записки не поддающиеся вкуриванию…

Архив

Рубрика: FreeBSD

Решил тут под конец года навести порядок на сервере и заодно обновиться. Ну раз решено…значит приступим.
portupgrade -u -a
….
=> SHA256 Checksum OK for PECL/APC-3.1.4.tgz.
===> Patching for pecl-APC-3.1.4
===> pecl-APC-3.1.4 depends on file: /usr/local/bin/phpize — found
===> pecl-APC-3.1.4 depends on file: /usr/local/bin/autoconf-2.68 — found
===> PHPizing for pecl-APC-3.1.4
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

*** Error code 1

Stop in /usr/ports/www/pecl-APC.
*** Error code 1

Stop in /usr/ports/www/pecl-APC.

и надо же опять и как всегда какая-то блять хрень не хочет обновляться 🙁 Читание /usr/ports/UPDATES просветления не дало. Ну что же…. медитируем….читаем лог обновления порта….выстраиваем логические цепочки…Бля а реально то, как всё просто.
Вот оно решение:
portupgrade -f php
portupgrade -u -a или же portupgrade -u pecl-APC

    Ну и в догонку….

>freebsd-update fetch
>freebsd-update install

Ну вот. Теперь на серваке всё обновлено до текущего состояния и можно спать спокойно.
Заодно проверил и контрольную сумму ProFTPd. Ибо эти пидорасы 4-е!!! дня распространяли исходники с бэкдуром 🙂

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
1 227 views

Здесь я просто выложу (как памятку) какие функции PHP  на что и как менять.


ereg():

ereg("\.([^\.]*$)", $this->file_src_name, $extension);

preg_match("/\.([^\.]*$)/", $this->file_src_name, $extension);

ereg_replace():

$this->file_dst_name_body = ereg_replace("[^A-Za-z0-9_]", "",$this->file_dst_name_body);

$this->file_dst_name_body = preg_replace("/[^A-Za-z0-9_]/", "",$this->file_dst_name_body);

eregi():

eregi("\.([^\.]*$)", $this->file_src_name, $extension);

preg_match("/\.([^\.]*$)/i", $this->file_src_name, $extension);

Но можно и не менять эти функции а просто ищем в php.ini следующие строчки (или добавляем в конец если таковых нету в вашем конфиге :) ):

http://ru2.php.net/manual/en/mbstring.overload.php

;0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions

; http://ru2.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload
mbstring.func_overload = 0

Что это означает? А вот что!!!

0 - Оставить все без изменений.
1-4 Включить одну из функций.
7 - Включить сразу все функции.

Тем самым мы включаем поддержку старых функций, при этом новые будут отключены.

Ну вот и всё пока.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
1 420 views

После месяца использования PHP5.3 , выяснилось что неправильно стала работать гвестбука и форум. Начнём с гостевой http://amigas.ru/webserverdata/gb/index.php . Стоит она (inDEV) у меня уже очень очень давно и хотелось бы её оставить на память но в рабочем варианте. Но при её открытии стало выдаваться следующее:

Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Deprecated: Function split() is deprecated in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29

Количество сообщений об ошибке как оказалось зависит от количества записей в гостевой. Ну что-же… Будем исправлять. На сайте пыхи советуют заменить устаревшую функцию split на preg_split. Идём в quest.php и находим строку 29. Вот она:

list($date,$ip,$name,$email,$site,$msg) = split(«@@@»,$ln[$stop]);

изменяем её так:

list($date,$ip,$name,$email,$site,$msg) = preg_split(«@@@»,$ln[$stop]);

При попытке захода в гостевую получаем следующую ошибку:

Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29
Warning: preg_split() [function.preg-split]: Unknown modifier ‘@’ in /data/sites/my-www/webserverdata/gb/engine/guest.php on line 29

Ну что же опять топаем на сайт php.net  и читаем вдумчиво и ещё раз 5 также. А потом долго думаем. И о эврика!!!!! Пробуем так:

list($date,$ip,$name,$email,$site,$msg) = preg_split(«/@@@/»,$ln[$stop]);

И наконец то всё заработало как надо! Что изменилось? Да просто добавили пару слэшей «/» в функцию preg_split.

Ну вот и всё пока. Надеюсь мой опыт хоть кому-то поможет.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
12 195 views

NTP Сервер

мая 27 2010

Понадобилось както опять поднять NTP сервер (сервер синхронизации времени) чтобы на всех машинках в конторе было одинаковое время и народ бы не сваливал раньше времени на обед или домой. Но по прошествии времени всё уже позабылось. И вот решил написать как памятку себе, т.к единственное что помню — только то что были какие-то «грабли» с обновлением времени с интернетовских серверов.


rc.conf

ntpdate_enable="YES"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-u ntp.psn.ru"

ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpd_flags="-p /var/run/ntpd.pid"

>touch /etc/ntp.conf

>touch /var/db/ntp.drift

>touch /var/log/ntp.log

ntp.conf

server 194.149.67.130 prefer                          # ntp.psn.ru
server 212.82.32.26                                          # time2.one4vision.de
server 132.239.1.6                                             # ntp.ucsd.edu
server 192.43.244.18                                        # time.nist.gov

driftfile /var/db/ntp.drift
logfile /var/log/ntp.log

restrict default ignore                              # Запрещаем всем сверяться с нашим сервером
restrict 127.0.0.1
# restrict 10.0.0.233
restrict 194.149.67.130 noquery notrap             # Разрешаем этим машинкам исправлять наше время
restrict 212.82.32.26 noquery notrap
restrict 132.239.1.6 noquery notrap
restrict 192.43.244.18 noquery notrap
restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap       # А этим (т.е. локалке) можно сверяться с нами

Вот и вспомнил из-за чего была проблема! При указании в ntp.conf доменного адреса вместо IP адреса — сервер просто не находит сервера откуда обновлять время. Как один из вариантов это указание IP адреса или же (этот вариант не пробовал) указать в /etc/hosts пару <IP-доменное имя> всех серверов откуда пытаемся синхронизировать время.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
918 views

Итак встала задача в конторе переехать с ворованного ххххххпрокси на бесплатный со всеми текущими настройками каждого пользователя. Перебрав варианта 3-4 различных прокси серверов, мой выбор пал на 3PROXY (http://3proxy.ru). Синтаксис у oops, squid,etc почти что одинаков, а вот у 3proxy со своим оригинальным синтаксисом и возможностями известными только автору — пришлось курить маны, факи и хауту, чтобы написать работоспособный конфиг под своих юзеров. Кстати. У 3proxy мне очень понравилось — быстрая установка и запуск, а также переносимость конфига с минимальными изменениями UNIX <-> Windows.

Итак задача. Пустить в инет 25 юзеров — авторизация по IP и по логину с пассвордом. Каждому юзеру канал определённой «толщины «, или же один канал на несколько пользователей(например для бухгалтеров). Ограничение времени работы (только в рабочее время). В выходные скорость в рабочее время для всех по минимуму (2-3кб/сек). Несколько фильтров ресурсов (список запрещённых ресурсов и список разрешённых ресурсов). Весь трафик идёт через вышестоящий прокси в другом филиале. TCP и UDP портмаппинг(можно через вышестоящий прокси(если такое возможно) а можно и напрямую).

Далее…

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
41 677 views

PHP 5.3.2

Апр 13 2010

Ну вот и пришло время когда появился PHP5.3.x в портах FREEBSD. Ну и раз появилось то и появилось желание обновиться и опробовать. До этого пробовал на винде версию 5.3 и как оказалось многие скрипты просто стали неработоспособными, что и пугает. Но мы то эти самые матёрые , которые нихера не боятся трудностей. Да и с прогрессом стараюсь идти в ногу )наступая на грабли и оказываясь в полной жопе(
Итак начнём:

1. Для начала обновим порты:
>portsnap fetch update
2. Идём в /usr/ports/UPDATING и видим что там предлагают сделать с пыхой. Удалить
- php5-dbase
- php5-ncurses
- php5-pcre
- php5-spl
- php5-ming
- php5-mhash
и пересобрать php5.
Что собственно и делаем:
>pkg_delete -f php5-dbase php5-ncurses php5-pcre php5-spl php5-ming php5-mhash
>portupgrade -u php5
>apachectl restart - чтобы апач подцепил пыху5.3.2

Вот и всё по первому пункту.
3. Ну вот и начались проблемы. Первое что бросилось в глаза так это ругань на дату. После поиска и прочтения описания изменений - наступает просветление.
Идём в
>ee /usr/local/etc/php.ini
и добавляем строчку - date.timezone = "Asia/Yekaterinburg".
Свою таймзону найти можно на сайте PHP.

И о чудо. 70% скриптов ожило. А 30% всё ещё выёживается. Для меня были важны фотогалерея на coppermine, блог на wordpress, и wr-scripts(форум,доска объявлений,итд). И они как ни странно заработали. Ну а с остальными будем разбираться потихоньку.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
961 views

php5-gd

Апр 5 2010

Как всегда и опять вдруг неожиданно эти блядские студенты опесурсники поломали библиотеку php5-gd (или libpng). И как итог перестали отображаться все изображения в формате PNG. Одно радует что количество таких файлов у меня ~2%. Но если честно то такие сюрпризы очень огорчают. Также попробовал патч и заново пересобрать php5-gd. В логи перестали сыпацца сообщения об ошибке но и отображаться картинки не стали 🙁

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
2 260 views