Debian 7 (wheezy) PHP 5.4 upgrade to 5.6

Собсно, обновление PHP до версии 5.6

В репозитории седьмого debian PHP 5.6 нет.
Поэтому необходимо добавить дополнительный источник обновлений

  1. 1
  2. 2
  3. 3
echo "deb http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list
echo "deb-src http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list
wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -

Обновляемся и проверяем версию PHP
  1. 1
  2. 2
apt-get update
php -v

Если не сработало, то просто выполните установку. Apt-get сам все сделает.
  1. 1
  2. 2
apt-get install php5
php -v


Перезагружаем веб-сервер.
  1. 1
service apache2 restart

И видим множественные предупреждения (warning) о том, что нужно выставить временную зону.
Собсно, проверим действительно ли она не выставлена, исправим и снова перезагрузимся. Доступные значения timezone можно найти в документации PHP - http://php.net/manual/en/timezones.php
  1. 1
  2. 2
  3. 3
cat /etc/php5/apache2/php.ini | grep timezone
nano /etc/php5/apache2/php.ini
service apache2 restart


Сюрпризы


Вполне возможно, что после обновления "слетят" некоторые модули. Особенно это касается модулей установленных через PECL. Придется установить их заново.
Но будьте внимательны, pecl используется утилиту php-config, а она может использовать старые пути к модулям.

Найдем исполняемый файл
  1. 1
  2. 2
whereis php-config
php-config: /usr/bin/php-config

Этот файл является ничем иным, как обычным shell. Так что открываем и исправляем путь до расширений extension_dir.
Например,
/usr/lib/php5/20100525/ - старый путь
/usr/lib/php5/20131226/ - новый

Если посмотреть содержимое новой директории, то там можно найти установленные модули - mysql.so и т.п.
После установки модуля, например
  1. 1
pecl install sphinx-1.2.0
он появится в этой же директории.

Останется включить модуль
  1. 1
extension=sphinx.so

Добавив эту строку в файл php.ini или создав файл в /etc/php5/mods-available/ и добавив сим.линк на него в директории /etc/php5/apache2/conf.d/ (в случае веб-сервера Apache2) по аналогии с имеющимися там модулями. Второй вариант более правильный.
Кстати, неплохо добавить то же самое в /etc/php5/cli/.


26 сентября 2016 | Рубрика: Linux

Name:*

Feedback:

Message:*

Календарь

  • Сегодня
    17 Марта 2026, Вторник
    ПНВТСРЧТПТСБВС
    1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031

Авторизация