Установка php 7 в VestaCP Print

  • VestaCP, php, установка
  • 114

На момент написания этой статьи, во время установки 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/


Was this answer helpful?

« Back