Альтернативные версии PHP в VestaCP
Рассмотрим установку альтернативной версии php на примере установленной панели VestaCP на систему Debian 8 (jessie).
Сервер с установленной панелью VestaCP доступен для установки из настроенного шаблона, при заказе сервера нужно выбрать ОС VestaCP.
По умолчанию Debian 8 идет с версией php 5.6, в данном топике рассмотрим установку альтернативной версии php 7.2
1. Проверяем текущую версию php предварительно создав файл /home/admin/web/test.ru/public_html/phpinfo.php с содержимым:
Результат:
2. Устанавливаем необходимые пакеты командой:
3. Для компиляции разных версий PHP воспользуемся менеджером PHP версий PHPBrew.
Скачивание и установка в систему менеджера php версий PHPBrew:
Проверка установленной версии PHPBrew
phpbrew — 1.26.0
cliframework core: 2.5.4
4. Компиляция PHP 7.2 с помощью PHPBrew
Спустя 15 минут компиляция PHP будет завершена о чем будет свидетельствовать вывод консоли:
4.1 Для компиляции PHP 7.4 нужно установить дополнительные пакеты командой:
Запуск компиляции:
5. Добавление символической ссылки для установленной версии PHP 7.2 на /usr/local/php
6. Включение CGI модуля Apache2
7. Добавление шаблона и bash сценария в панель VestaCP для переключения версий PHP.
7.1 Добавление bash сценария для версии php 7.2 в файл /usr/local/vesta/data/templates/web/apache2/php72.sh
7.2 Добавление шаблона для создания панелью VestaCP конфигурационного файла apache2.
Протокол http, файл /usr/local/vesta/data/templates/web/apache2/php72.tpl
Протокол https, файл /usr/local/vesta/data/templates/web/apache2/php72.stpl
8. Устанавливаем права на шаблоны, перезапускаем вебсервер Apache2 и проверяем.
В настройках домена в разделе Шаблон Web APACHE2 появится новый шаблон с названием PHP72, выбрав его и сохранив изменения можно проверить версию PHP (см. пункт 1).
Версия php 7.2 включена
Аналогичным способом повторяя пункты 4-8 можно установить другие версии PHP и создать для них шаблоны в панели VestaCP.
Сервер с установленной панелью VestaCP доступен для установки из настроенного шаблона, при заказе сервера нужно выбрать ОС VestaCP.
По умолчанию Debian 8 идет с версией php 5.6, в данном топике рассмотрим установку альтернативной версии php 7.2
1. Проверяем текущую версию php предварительно создав файл /home/admin/web/test.ru/public_html/phpinfo.php с содержимым:
<?php
phpinfo()
?>
Результат:
2. Устанавливаем необходимые пакеты командой:
apt-get update && apt-get install 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 libicu-dev -y
3. Для компиляции разных версий PHP воспользуемся менеджером PHP версий PHPBrew.
Скачивание и установка в систему менеджера php версий PHPBrew:
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew && chmod +x phpbrew && 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
Проверка установленной версии PHPBrew
phpbrew --version
phpbrew — 1.26.0
cliframework core: 2.5.4
4. Компиляция PHP 7.2 с помощью PHPBrew
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
Спустя 15 минут компиляция PHP будет завершена о чем будет свидетельствовать вывод консоли:
===> Building...
Build finished: 15.4 minutes.
Installing...
---> Creating php-fpm.conf
---> Creating php.ini
---> Copying /usr/local/php/build/php-7.2.33/php.ini-development
---> Found date.timezone is not set, patching...
---> Found date.timezone, patching config timezone with UTC
Initializing pear config...
config-set succeeded
config-set succeeded
config-set succeeded
Enabling pear auto-discover...
config-set succeeded
Congratulations! Now you have PHP with 7.2.33 as php-7.2.33
* To configure your installed PHP further, you can edit the config file at
/usr/local/php/php/php-7.2.33/etc/php.ini
To use the newly built PHP, try the line(s) below:
$ phpbrew use php-7.2.33
Or you can use switch command to switch your default php to php-7.2.33:
$ phpbrew switch php-7.2.33
Enjoy!
4.1 Для компиляции PHP 7.4 нужно установить дополнительные пакеты командой:
apt-get install -y libonig-dev libpq-dev
Запуск компиляции:
phpbrew install 7.4 +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
5. Добавление символической ссылки для установленной версии PHP 7.2 на /usr/local/php
ln -s /usr/local/php/php/php-7.2.33 /usr/local/php/php72
6. Включение CGI модуля Apache2
a2enmod actions cgi && service apache2 restart
7. Добавление шаблона и bash сценария в панель VestaCP для переключения версий PHP.
7.1 Добавление bash сценария для версии 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
7.2 Добавление шаблона для создания панелью VestaCP конфигурационного файла apache2.
Протокол http, файл /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>
Протокол https, файл /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>
8. Устанавливаем права на шаблоны, перезапускаем вебсервер Apache2 и проверяем.
chmod 755 /usr/local/vesta/data/templates/web/apache2/* && service apache2 restart
В настройках домена в разделе Шаблон Web APACHE2 появится новый шаблон с названием PHP72, выбрав его и сохранив изменения можно проверить версию PHP (см. пункт 1).
Версия php 7.2 включена
Аналогичным способом повторяя пункты 4-8 можно установить другие версии PHP и создать для них шаблоны в панели VestaCP.
- 0
- 25 августа 2020, 13:36
- GreatAlex
Комментарии (0)
RSS свернуть / развернуть