VestaCP установить несколько версий PHP



В VDS не селен, по этому собирал информацию по крупицам интенета. Очень много разной инфы как установить несколько версий PHP в VestaCP. Пробовал разные мануалы, скрипты. На данный момент более-менее рабочее решение нашел здесь. Огромное спасибо автору, привожу его текст. В комментариях проблемы и ошибки с которыми я столкнулся и пробовал решить.

Моя конфигурация VDS Ubuntu 18.04 с установленной VestaCP.

Для выполнения настройки необходимо подключиться к серверу с помощью вашего любимого клиента SSH.

Предварительно установите следующие библиотеки:
  • build-essential libbz2-dev libjpeg-dev libpng-dev libfreetype6 libfreetype6-dev libmcrypt-dev libmcrypt4 mcrypt libedit-dev libreadline-dev libxslt1-dev autoconf g++ make openssl libssl-dev libcurl4-openssl-dev libcurl4-openssl-dev pkg-config libsasl2-dev zlib1g-dev libzip-dev libcurl4-gnutls-dev
В Linux Debian (Ubuntu) установка выполняется командой apt-get install (либо apt install), в CentOS воспользуйтесь установкой с помощью Yum. Далее инструкция будет приведена для ОС семейства Debian (Ubuntu).
Установку PHP 5.3 в данной инструкции рассматривать не будем, потому что в облаке NetPoint есть готовый шаблон VestaCP с предустановленной PHP версии 5.3.

Установка PHPBrew

Предварительно установите PHPBrew, если он еще не установлен. В том случае, если вы используете наш шаблон с предустановленной VestaCP, PHPBrew уже установлен.
  • curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
  • chmod +x phpbrew
  • sudo mv phpbrew /usr/bin/phpbrew
  • mkdir -p /usr/local/php
  • phpbrew init --root=/usr/local/php
  • export PHPBREW_ROOT=/usr/local/php
  • [[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
  • phpbrew update
  • phpbrew update --old

Установка ПО PHP всех версий

Установку PHP версии 5.6 можно выполнить следующей командой:
  • phpbrew install 5.6 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --enable-exif --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib-dir=/usr --with-mcrypt=/usr --with-mhash --with-xsl=/usr --enable-zip --enable-cgi --with-curl --with-gd --enable-pcntl --enable-mbregex --enable-gd-native-ttf --with-libdir=lib64 --enable-dba=shared --enable-intl --with-readline=/usr --enable-simplexml --enable-soap --enable-zip --with-mhash=yes --enable-shmop --enable-sockets --enable-wddx --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-cdb --with-iconv --enable-exif --enable-ftp --with-gettext --with-pic
Установку PHP версии 7.0 можно выполнить следующей командой:
  • phpbrew install 7.0 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --enable-exif --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib-dir=/usr --with-mcrypt=/usr --with-mhash --with-xsl=/usr --enable-zip --enable-cgi --with-curl --with-gd --enable-pcntl --enable-mbregex --enable-gd-native-ttf --with-libdir=lib64 --enable-dba=shared --enable-intl --with-readline=/usr --enable-simplexml --enable-soap --enable-zip --with-mhash=yes --enable-shmop --enable-sockets --enable-wddx --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-cdb --with-iconv --enable-exif --enable-ftp --with-gettext --with-pic
Установку PHP версии 7.1 можно выполнить следующей командой:
  • phpbrew install 7.1 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --enable-exif --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib-dir=/usr --with-mcrypt=/usr --with-mhash --with-xsl=/usr --enable-zip --enable-cgi --with-curl --with-gd --enable-pcntl --enable-mbregex --enable-gd-native-ttf --with-libdir=lib64 --enable-dba=shared --enable-intl --with-readline=/usr --enable-simplexml --enable-soap --enable-zip --with-mhash=yes --enable-shmop --enable-sockets --enable-wddx --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-cdb --with-iconv --enable-exif --enable-ftp --with-gettext --with-pic
Установку PHP версии 7.2 можно выполнить следующей командой:
  • phpbrew install 7.2 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --enable-exif --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib-dir=/usr --with-mcrypt=/usr --with-mhash --with-xsl=/usr --enable-zip --enable-cgi --with-curl --with-gd --enable-pcntl --enable-mbregex --enable-gd-native-ttf --with-libdir=lib64 --enable-dba=shared --enable-intl --with-readline=/usr --enable-simplexml --enable-soap --enable-zip --with-mhash=yes --enable-shmop --enable-sockets --enable-wddx --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-cdb --with-iconv --enable-exif --enable-ftp --with-gettext --with-pic
Установку PHP версии 7.3 можно выполнить следующей командой:
  • phpbrew install 7.3 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --enable-exif --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib-dir=/usr --with-mcrypt=/usr --with-mhash --with-xsl=/usr --enable-zip --enable-cgi --with-curl --with-gd --enable-pcntl --enable-mbregex --enable-gd-native-ttf --with-libdir=lib64 --enable-dba=shared --enable-intl --with-readline=/usr --enable-simplexml --enable-soap --enable-zip --with-mhash=yes --enable-shmop --enable-sockets --enable-wddx --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-cdb --with-iconv --enable-exif --enable-ftp --with-gettext --with-pic

Создание символических ссылок в /usr/local/php

Создайте символические ссылки для установленных PHP версий следующими командами:
PHP 5.6
  • ln -s /usr/local/php/php/php-5.6.40 /usr/local/php/php56
PHP 7.0
  • ln -s /usr/local/php/php/php-7.0.33 /usr/local/php/php70
PHP 7.1
  • ln -s /usr/local/php/php/php-7.1.27 /usr/local/php/php71
PHP 7.2
  • ln -s /usr/local/php/php/php-7.2.16 /usr/local/php/php72
PHP 7.3
  • ln -s /usr/local/php/php/php-7.3.3 /usr/local/php/php73

Настройка Apache2

Активируйте CGI модуль веб-сервера:
  • a2enmod actions cgi
Перезапустите службу веб-сервера Apache2, чтобы применить изменения
  • service apache2 restart

Создание шаблонов для запуска PHP web-сервером Apache2

Добавьте шаблоны и сценарии bash в указанные директории для переключения версий php через web интерфейс VestaCP

PHP 5.6

/usr/local/vesta/data/templates/web/apache2/php56.sh
  • #!/bin/bash
  • user="$1"
  • domain="$2"
  • ip="$3"
  • home_dir="$4"
  • docroot="$5"
  • wrapper_script='#!/usr/local/php/php56/bin/php-cgi -c /usr/local/php/php56/etc/php.ini' wrapper_file="/home/$user/web/$domain/cgi-bin/php"
  • echo "$wrapper_script" > $wrapper_file
  • chown $user:$user $wrapper_file
  • chmod -f 751 $wrapper_file
  • exit 0
/usr/local/vesta/data/templates/web/apache2/php56.tpl
  • <VirtualHost %ip%:%web_port%>
  • ServerName %domain_idn% %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %docroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %docroot%>
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* </VirtualHost><br>
/usr/local/vesta/data/templates/web/apache2/php56.stpl
  • <VirtualHost %ip%:%web_ssl_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %sdocroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %sdocroot%>
  • SSLRequireSSL
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • SSLEngine on
  • SSLVerifyClient none
  • SSLCertificateFile %ssl_crt%
  • SSLCertificateKeyFile %ssl_key%
  • %ssl_ca_str%SSLCertificateChainFile %ssl_ca%
  • IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf*
  • </VirtualHost>

PHP 7.0

/usr/local/vesta/data/templates/web/apache2/php70.sh
  • #!/bin/bash
  • user="$1"
  • domain="$2"
  • ip="$3"
  • home_dir="$4"
  • docroot="$5"
  • wrapper_script='#!/usr/local/php/php70/bin/php-cgi -c /usr/local/php/php70/etc/php.ini'
  • wrapper_file="/home/$user/web/$domain/cgi-bin/php"
  • echo "$wrapper_script" > $wrapper_file
  • chown $user:$user $wrapper_file
  • chmod -f 751 $wrapper_file
  • exit 0
Файлы шаблонов для всех версий PHP такие-же, как у версии PHP 5.6, отличие только в именах шаблонов и путях к PHP.
/usr/local/vesta/data/templates/web/apache2/php70.tpl
  • <VirtualHost %ip%:%web_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %docroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %docroot%>
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf*
  • </VirtualHost>
/usr/local/vesta/data/templates/web/apache2/php70.stpl
  • <VirtualHost %ip%:%web_ssl_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %sdocroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %sdocroot%>
  • SSLRequireSSL
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • SSLEngine on
  • SSLVerifyClient none
  • SSLCertificateFile %ssl_crt%
  • SSLCertificateKeyFile %ssl_key%
  • %ssl_ca_str%SSLCertificateChainFile %ssl_ca%
  • IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf*
  • </VirtualHost>

PHP 7.1

/usr/local/vesta/data/templates/web/apache2/php71.sh
  • #!/bin/bash
  • user="$1"
  • domain="$2"
  • ip="$3"
  • home_dir="$4"
  • docroot="$5"
  • wrapper_script='#!/usr/local/php/php71/bin/php-cgi -c /usr/local/php/php71/etc/php.ini'
  • wrapper_file="/home/$user/web/$domain/cgi-bin/php"
  • echo "$wrapper_script" > $wrapper_file
  • chown $user:$user $wrapper_file
  • chmod -f 751 $wrapper_file
  • exit 0
/usr/local/vesta/data/templates/web/apache2/php71.tpl
  • <VirtualHost %ip%:%web_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %docroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %docroot%>
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf*
  • </VirtualHost>
/usr/local/vesta/data/templates/web/apache2/php71.stpl
  • <VirtualHost %ip%:%web_ssl_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %sdocroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %sdocroot%>
  • SSLRequireSSL
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • SSLEngine on
  • SSLVerifyClient none
  • SSLCertificateFile %ssl_crt%
  • SSLCertificateKeyFile %ssl_key%
  • %ssl_ca_str%SSLCertificateChainFile %ssl_ca%
  • IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf*
  • </VirtualHost>

PHP 7.2

/usr/local/vesta/data/templates/web/apache2/php72.sh
  • #!/bin/bash
  • user="$1"
  • domain="$2"
  • ip="$3"
  • home_dir="$4"
  • docroot="$5"
  • wrapper_script='#!/usr/local/php/php72/bin/php-cgi -c /usr/local/php/php72/etc/php.ini'
  • wrapper_file="/home/$user/web/$domain/cgi-bin/php"
  • echo "$wrapper_script" > $wrapper_file
  • chown $user:$user $wrapper_file
  • chmod -f 751 $wrapper_file
  • exit 0
/usr/local/vesta/data/templates/web/apache2/php72.tpl
  • <VirtualHost %ip%:%web_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %docroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %docroot%>
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf*
  • </VirtualHost>
/usr/local/vesta/data/templates/web/apache2/php72.stpl
  • <VirtualHost %ip%:%web_ssl_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %sdocroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %sdocroot%>
  • SSLRequireSSL
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • SSLEngine on
  • SSLVerifyClient none
  • SSLCertificateFile %ssl_crt%
  • SSLCertificateKeyFile %ssl_key%
  • %ssl_ca_str%SSLCertificateChainFile %ssl_ca%
  • IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf*
  • </VirtualHost>

PHP 7.3

/usr/local/vesta/data/templates/web/apache2/php73.sh
  • #!/bin/bash
  • user="$1"
  • domain="$2"
  • ip="$3"
  • home_dir="$4"
  • docroot="$5"
  • wrapper_script='#!/usr/local/php/php73/bin/php-cgi -c /usr/local/php/php73/etc/php.ini'
  • wrapper_file="/home/$user/web/$domain/cgi-bin/php"
  • echo "$wrapper_script" > $wrapper_file
  • chown $user:$user $wrapper_file
  • chmod -f 751 $wrapper_file
  • exit 0
/usr/local/vesta/data/templates/web/apache2/php73.tpl
  • <VirtualHost %ip%:%web_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %docroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %docroot%>
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf*
  • </VirtualHost>
/usr/local/vesta/data/templates/web/apache2/php73.stpl
  • <VirtualHost %ip%:%web_ssl_port%>
  • ServerName %domain_idn%
  • %alias_string%
  • ServerAdmin %email%
  • DocumentRoot %sdocroot%
  • ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
  • Alias /vstats/ %home%/%user%/web/%domain%/stats/
  • Alias /error/ %home%/%user%/web/%domain%/document_errors/
  • SuexecUserGroup %user% %group%
  • CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
  • CustomLog /var/log/%web_system%/domains/%domain%.log combined
  • ErrorLog /var/log/%web_system%/domains/%domain%.error.log
  • <Directory %sdocroot%>
  • SSLRequireSSL
  • AllowOverride All
  • Options +Includes -Indexes +ExecCGI
  • php_admin_value open_basedir %docroot%:%home%/%user%/tmp
  • php_admin_value upload_tmp_dir %home%/%user%/tmp
  • php_admin_value session.save_path %home%/%user%/tmp
  • Action phpcgi-script /cgi-bin/php
  • <Files *.php>
  • SetHandler phpcgi-script
  • </Files>
  • </Directory>
  • <Directory %home%/%user%/web/%domain%/stats>
  • AllowOverride All
  • </Directory>
  • SSLEngine on
  • SSLVerifyClient none
  • SSLCertificateFile %ssl_crt%
  • SSLCertificateKeyFile %ssl_key%
  • %ssl_ca_str%SSLCertificateChainFile %ssl_ca%
  • IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf*
  • </VirtualHost>

Установка прав на шаблоны

Установите права на файлы шаблонов следующей командой:
  • chmod 755 /usr/local/vesta/data/templates/web/apache2/*
Выполните еще раз перезапуск веб-сервера Apache2:
  • service apache2 restart

Активация для выбранного сайта

Активация нужной PHP версии выполняется следующим образом:
  • пройдите авторизацию в панели управления VestaCP;
  • нажмите на категорию WEB;
  • выберите нужный домен и нажмите на кнопку «Редактировать»;
  • найдите пункт «Шаблон Web Apache2» и выберите из выпадающего списка нужную версию PHP;
  • нажмите кнопку «Сохранить».

Комментарии

  1. PHP 5.6 установилось без ошибок. При установки PHP 7.3 первой ошибкой была reinstall the libzip distribution решилось установкой

    apt-get install libzip-dev

    после появилась новая ошибка

    virtual memory exhausted: Cannot allocate memory
    Makefile:902: recipe for target 'ext/fileinfo/libmagic/apprentice.lo' failed
    make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

    пока не решена.

    ОтветитьУдалить
  2. Проблема связана с недостатком памяти. На сервере выделен 1Гб но этого оказалось не достаточно. Командами

    cat /proc/meminfo — количество RAM и swap, а так же сколько и чем расходуется
    free -m — полный объем, использованный объем и объем свободной памяти в Mb
    top — при нажатии на клавишу M (Shift+m) все процессы будут отсортированы по использованию оперативной памяти

    выйти из top можно нажатием на "q"

    установлено, что при запущенных процессах остается довольно мало памяти для успешной установки. Останавливаем на время запущенные процессы и пробуем снова. В моем случае я остановил mysql, apache2, spamassassin последний можно даже удалить:

    service mysqld status
    service mysqld stop
    service mysqld start

    или

    service mysql status
    service mysql stop
    service mysql start

    service apache2 status
    service apache2 stop
    service apache2 start

    service spamassassin stop

    удалить
    apt-get remove --purge spamassassin

    выйти из статуса можно все той же клавишей "q"

    я освободил 730Мб но мне установить не удалось

    ОтветитьУдалить
  3. Даже освободив место почти до 800Мб остановив еще службы blind9 и fail2ban, список запущенных служб можно посмотреть так service --status-all установить не удалось

    ОтветитьУдалить
  4. Решение нашлось. Необходимо создать SWAP файл. Как это сделать написал здесь https://aleshij.blogspot.com/2020/02/virtual-memory-exhausted-cannot.html после создания SWAP 7.3 установилась.

    ОтветитьУдалить
  5. Решил сделать еще раз все с нуля, переустановил систему и панель. И решил установить только PHP 7.3.14 было пару ошибок:

    Ошибку configure: error: libxml2 not found. Please check your libxml2 installation
    лечим установкой

    sudo apt-get install libxml2-dev

    если установлено то выполняем команду dpkg-reconfigure libxml2

    Ошибку configure: error: Cannot find OpenSSL's
    лечим

    sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev
    sudo apt-get install -y libcurl4-openssl-dev pkg-config
    sudo apt-get install -y libsasl2-dev

    Ошибку configure: error: Please reinstall the BZip2 distribution
    лечим

    sudo apt-get install -y libbz2-dev

    apt-get install libbz2-dev

    Ошибку configure: error: jpeglib.h not found
    лечим

    sudo apt-get install libjpeg-dev

    Хотя это все есть в начале статьи, можно попробовать еще раз вот так

    sudo apt-get install -y build-essential libbz2-dev libjpeg-dev libpng-dev libfreetype6 libfreetype6-dev libmcrypt-dev libmcrypt4 mcrypt libedit-dev libreadline-dev libxslt1-dev autoconf g++ make openssl libssl-dev libcurl4-openssl-dev libcurl4-openssl-dev pkg-config libsasl2-dev zlib1g-dev libzip-dev


    ОтветитьУдалить

Отправить комментарий