В 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;
- нажмите кнопку «Сохранить».
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
пока не решена.
Проблема связана с недостатком памяти. На сервере выделен 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Мб но мне установить не удалось
Даже освободив место почти до 800Мб остановив еще службы blind9 и fail2ban, список запущенных служб можно посмотреть так service --status-all установить не удалось
ОтветитьУдалитьРешение нашлось. Необходимо создать SWAP файл. Как это сделать написал здесь https://aleshij.blogspot.com/2020/02/virtual-memory-exhausted-cannot.html после создания SWAP 7.3 установилась.
ОтветитьУдалитьРешил сделать еще раз все с нуля, переустановил систему и панель. И решил установить только 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