Обновление php с 5.2.x до 5.3

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

Далее необходимо удалить все 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

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.