Установка php 7 в VestaCP
На момент написания этой статьи, во время установки VestaCP на CentOS 7 устанавливался php 5.6. Уже давно вышла новая версия php 7 и у вас может возникнуть желание использовать именно ее. К сожалению, непосредственно панель vestacp не предоставляет удобной возможности установки и выбора различных версий php.
Если вы используете связку apache + php, можете воспользоваться готовыми скриптами, которые сами установят разные версии php и внесут изменения в интерфейс Весты так, что вы сможете выбирать нужную вам версию. Ссылки для Debian/Ubuntu и CentOS. К сожалению, для nginx + php-fpm готовых решений нет.
Для установки php 7 в vesta cp мы пойдем своим путем и просто установим в систему новую версию php. Чтобы быстро узнать, какая версия php у вас установлена, выполните в консоли сервера команду:
# php -v PHP 5.6.31 (cli) (built: Jul 6 2017 08:06:11) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend TechnologiesПредупреждаю, что дальнейшие действия могут привести к неработоспособности web сервера в силу значительного количества изменений. Все, что я опишу далее, проверено на момент написания статьи и не факт, что будет работать у вас. Обязательно перед внесением следующих изменений, проверьте все на тестовом сервере, который будет совпадать по версиям с рабочим.Останавливаем службы веб сервера:
# service nginx stop # service php-fpm stopДобавляем дополнительные репозитории:
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm # yum --enablerepo=remi update remi-releaseУдаляем текущую версию php:
# yum remove php php-fpmУстанавливаем php7.1 на vestacp:
yum --enablerepo=remi-php71 install php71-php php71-php-pear php71-php-bcmath php71-php-pecl-jsond-devel php71-php-mysqlnd php71-php-gd php71-php-common php71-php-fpm php71-php-intl php71-php-cli php71-php php71-php-xml php71-php-opcache php71-php-pecl-apcu php71-php-pecl-jsond php71-php-pdo php71-php-gmp php71-php-process php71-php-pecl-imagick php71-php-devel php71-php-mbstringСоздаем символьную ссылку для новой версии php:
# rm -f /usr/bin/php # ln -s /usr/bin/php71 /usr/bin/phpСоздадим символьную ссылку на папку с конфигурациями php-fpm, которые генерирует vesta. Версия php71-php-fpm хранит свои конфиги в /etc/opt/remi/php71/php-fpm.d. Сделаем туда ссылку из старой директории с php-fpm.
# ln -s /etc/php-fpm.d /etc/opt/remi/php71/php-fpm.dТеперь изменим некоторые вещи в самой весте. Открываем конфиг /usr/local/vesta/conf/vesta.conf и меняем параметр:
WEB_BACKEND='php71-php-fpm'Переименовываем пару папок в составе весты:
# cd /usr/local/vesta/data/templates/web # mv php-fpm php71-php-fpm # cd /usr/local/vesta/data/templates/web/nginx # mv php-fpm php71-php-fpmПосле этих преобразований, запускаем наши сервисы и добавляем новую версию php-fpm в автозагрузку:
# systemctl start nginx # systemctl start php71-php-fpm # systemctl enable php71-php-fpmТеперь можно создать тестовый файл phpinfo и проверить версию php. Еще раз отмечаю, что эти преобразования очень рискованны. Вы должны четко понимать, что делаете. Так как эти изменения не поддерживаются авторами панели, больше вы не сможете ее обновлять автоматически.
Можно было бы пойти другим путем, и заменить не конфиги весты, заменяя версию php-fpm, а в системе переименовать php71-php-fpm в обычный php-fpm. Тогда бы не пришлось изменять настройки самой весты. Но в таком случае вы не сможете автоматически обновлять сам php-fpm. Я в этом случае решил, что php-fpm обновлять важнее, чем весту, поэтому изменил последнюю.
Материалы взяты с сайта https://serveradmin.ru/