Ваш логин:
Ваш пароль:
 
 
Вы смотрите: Блог разработчика » Заметки сисадмина » Обновление версии php с 5.2.x до 5.3.x
18-04-2011, 14:18, прочитали: 2485 раз, раздел: Заметки сисадмина, FreeBSD
Вообщем решил я обновить php на своем сервере с FreeBSD. Сервер рабочий, на нем крутятся сайтики. И нам нужно, что бы перебоев в работе сервера не было.

Для начала необходимо обновить порты.

Далее необходимо удалить все php5 порты.

pkg_delete -r -f -x php5*


Порты удалены, но апач и php работают, т.к. загружены в память.

Далее:

cd /usr/ports/lang/php5/
make config-recursive && make install clean


cd /usr/ports/lang/php5-extensions/
make config-recursive && make install clean



Если установлен eAccelerator, его также необходимо переустановить:

cd /usr/ports/www/eaccelerator
make deinstall && make install clean


Перезапускаем Apache и Nginx:

/usr/local/etc/rc.d/apache22 restart

/usr/local/etc/rc.d/nginx restart


Возможные ошибки

В ходе установки расширений для PHP могут возникнуть подобные ошибки:

Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
autoconf: required version 2.68 not found
*** Error code 1

Stop in /usr/ports/math/php5-bcmath.
*** Error code 1

Stop in /usr/ports/lang/php5-extensions.
*** Error code 1

Stop in /usr/ports/lang/php5-extensions.


Это связано с тем, что необходимо обновить пакет autoconf. Сделать это можно так:

portmaster -o devel/autoconf devel/autoconf268


если не поможет, то:

portmaster -o /usr/ports/devel/autoconf /usr/ports/devel/autoconf


далее необходимо будет обновить доп. пакеты:

# portmaster -o devel/libtool devel/libtool22
# portmaster -o devel/libltdl devel/libltdl22
# portmaster -o devel/automake devel/automake111


У меня на этом проблемы не закончились! При повторной сборке php5-extensions начало выдавать

Shared object "libintl.so.8" not found, required by "pg_config"


Ну а это связано уже с обновлением gettext. WTF!

Я попробывал обновить gettext
portmaster -r gettext


ничего не вышло, проблема же решилась очень просто:
ln -s /usr/local/lib/libintl.so.8 /usr/local/lib/libintl.so.9


Пытаемся пересобрать php5-extensions ещё раз... перезапускаем апач... на этот раз всё получилось! наконецто!
Открываю сайт, вижу:

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead in /path/to/my/www/wp-includes/functions.php on line 43


открываем /usr/local/etc/php.ini

находим секцию: date.timezone ... у меня она была закомментирована!
Заменяем на date.timezone = "Europe/Moscow"

Перезапускаю апач, всё работает :)

 (голосов: 3)
Добавил: nickon,
Эта новость по темам:
Это может вас заинтересовать:
Комментариев оставленно: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
© 2008-2010 nick-on.name
Любая перепечатка материалов без разрешения редакции запрещена!

Обратная связь