Для начала необходимо обновить порты.
Далее необходимо удалить все 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
#ee /usr/local/etc/php.ini
находим секцию: date.timezone ... у меня она была закомментирована!
date.timezone = "Europe/Kiev"
Перезапускаю апач, всё работает :)
(c)http ://nick-on.name/unix-notes/56-obnovlenie-versii-php-s-52x-do-53x.html
Коментувати