Каким способом можно обновить версию PHP 5.4 на моем VDS на версию более новых веток, например PHP 5.5.
Для всех новых шаблонов с панелями управления ISPmanager 5, Vesta CP в комплекте идут репозитории с нашей сборкой PHP, начиная от старых версий PHP 5.2, 5.3, до актуальной PHP 5,4 и новых версий PHP 5.5, 5.6, 7.0
Достаточно включить нужный репозиторий для нужной версии и обновить пакеты. Рассмотрим последовательность действий обновления PHP для Vesta CP:
Необходимо зайти в файл репозитория /etc/yum.repos.d/mchost-php.repo любым удобным редактором или при помощи SFTP. По-умолчанию он имеет следующее содержимое:
[mchost-php52]
name=mchost-php52
baseurl=http://yum.mchost.ru/pub/php52/centos/6/x86_64/
gpgcheck=0
enabled=0
[mchost-php53]
name=mchost-php53
baseurl=http://yum.mchost.ru/pub/php53/centos/6/x86_64/
gpgcheck=0
enabled=0
[mchost-php54]
name=mchost-php54
baseurl=http://yum.mchost.ru/pub/php54/centos/6/x86_64/
gpgcheck=0
enabled=1
[mchost-php55]
name=mchost-php55
baseurl=http://yum.mchost.ru/pub/php55/centos/6/x86_64/
gpgcheck=0
enabled=0
[mchost-php56]
name=mchost-php56
baseurl=http://yum.mchost.ru/pub/php56/centos/6/x86_64/
gpgcheck=0
enabled=0
[mchost-php70]
name=mchost-php70
baseurl=http://yum.mchost.ru/pub/php70/centos/6/x86_64/
gpgcheck=0
enabled=0
enabled=1 для секции версии PHP означает, что на данный момент репозиторий для именно этой версии включен, в данном конкретном случае установлен по-умолчанию репозиторий с версией php 5.4, все остальные выключены.
Для того чтобы поставить версию 5.5 нам надо для секции mchost-php55 поставить enabled=1, для секции mchost-php54 выставить в enabled=0. После чего сохранить изменения в файле и ввести следующие команды в консоли ssh:
1. Удалить прекомпилятор xcache (в случае с панелью ISPmanager может быть не установлен), поскольку в старших версиях он не используется:
yum remove php-xcache -y
2. Обновляем пакеты PHP:
yum update php -y
3. Устанавливаем прекомпилятор opcache:
yum install php-opcache -y
4. Проверяем установленную версию:
php -v
Если все в порядке, то должна появиться версия 5.5. Если этого не случилось, обратитесь за помощью в отдел технической поддержки.
5. Перезапускаем веб-сервер apache:
service httpd restart
6. Установливаем права для дефолтной директории с сессиями:
chmod 777 /var/lib/php/session/
На этом обновление завершено.
Обновление до версии PHP 5.6 осуществляется по этой же схеме. В случае с версией PHP 7.0 установка несколько отличается, поскольку в PHP 7.0 не используется php-mysql, а используется php-mysqlnd. По этому для обновления нужно выполнить следующую последовательность:
1. Удалить прекомпилятор xcache (если он установлен), поскольку в старших версиях он не используется:
yum remove php-xcache -y
2. Удалить php-mysql:
rpm -e --nodeps php-mysql
3. Обновляем пакеты PHP:
yum update php -y
4. Устаналиваем php-mysqlnd:
yum install php-mysqlnd -y
5. Устанавливаем прекомпилятор opcache:
yum install php-opcache -y
6. Проверяем установленную версию:
php -v
Если все в порядке, то должна появиться версия 7.0. Если этого не случилось, обратитесь за помощью в отдел технической поддержки.
7. Перезапускаем веб-сервер apache:
service httpd restart
8. Установливаем права для дефолтной директории с сессиями:
chmod 777 /var/lib/php/session/
Данная инструкция актуальна для панели ISPmanager также, но для нее желательно в конце всех операций провести обновление информации о пакетах в системе:
/usr/local/mgr5/sbin/mgrctl -m ispmgr feature.update updatesystem=on sok=ok
Внимание! Прежде чем обновлять версию PHP, ознакомьтесь с техническими особенностями программного обеспечения, возможно оно не поддерживает самые новые версии. Для даунгрейда (понижения) версии обратитесь в техническую поддержку.
Если нужно установить дополнительный пакет для FastCGI версии php. Создайте файл /etc/yum.repos.d/mchost-phpcgi.repo со следующим содержимым:
[mchost-phpcgi]
name=mchost-phpcgi
baseurl=http://yum.mchost.ru/pub/phpcgi/centos/6/x86_64/
gpgcheck=0
enabled=1
Далее можно устанавливать пакеты. Установим для примера модуль pgsql для php70.
yum install php70-pgsql