Несколько версий PHP для разных VirtualHost

Несколько версий PHP для разных VirtualHost
Установка второй версии PHP
Если установившиеся версия не имеет модуля для Apache, то не спешим расстраиваться
Далее настраиваем некоторые параметры PHP5.6. Приводим следующие опции в файле /etc/opt/remi/php56/php.ini к виду:
php-fpm — это fastcgi process manager. Он представляет из себя отдельную службу, которая работает независимо от какого-либо веб-сервера. Он может сам принимать запросы от веб-сервера через unix-сокет или через сетевое соединение. Другими словами, вы можете держать сайты на одном сервере, а php-скрипты исполнять на другом.
активируем юнит systemd и запускаем его
Для разграничения версий PHP по хостам требуется внести изменения в конфигурационные файлы php-fpm
e /etc/httpd/conf.d/php56-php.conf
forum.sock это имя пула PHP-FPM. Для любого хоста может быть свой .sock файл пула со своими настройками для конкретного хоста. Описание самих пулов хранятся в конфигурационном каталоге php-fpm /etc/opt/remi/php56/php-fpm.d/forum.conf
имена .sock файлов и пути к ним должны совпадать в файле описания пулов php-fpm (/etc/opt/remi/php56/php-fpm.d/forum.conf) и конфигурационном файле WEB-сервера, подключающего php-fpm (/etc/httpd/conf.d/php56-php.conf)
Для вступления в силу изменений в конфигурации перезапускаем менеджер процессов FastCGI
Если используется модуль Apache для связи с PHP то перезапускаем Apache
Либо можно так же ввести ограничения для иной версии PHP
не забываем также про знак "!" - отрицание, чтобы исключить хост(ы) из обработки конкретной версией PHP
Установка второй версии PHP
- Код: выделить все
dnf install php56 php56-php-common php56-php-pear php56-php-mbstring php56-php-mcrypt php56-php-devel php56-php-xml php56-php-gd php56-php-ldap php56-php-odbc php56-php-xmlrpc php56-php-snmp php56-php-soap php56-php-mysqlnd php56-php-pgsql php56-php-imap
Если установившиеся версия не имеет модуля для Apache, то не спешим расстраиваться
- Код: выделить все
dnf install php56-php-fpm
Далее настраиваем некоторые параметры PHP5.6. Приводим следующие опции в файле /etc/opt/remi/php56/php.ini к виду:
- Код: выделить все
post_max_size = 32M
cgi.fix_pathinfo=0
upload_max_filesize = 32M
php-fpm — это fastcgi process manager. Он представляет из себя отдельную службу, которая работает независимо от какого-либо веб-сервера. Он может сам принимать запросы от веб-сервера через unix-сокет или через сетевое соединение. Другими словами, вы можете держать сайты на одном сервере, а php-скрипты исполнять на другом.
активируем юнит systemd и запускаем его
- Код: выделить все
systemctl enable --now php56-php-fpm.service
Для разграничения версий PHP по хостам требуется внести изменения в конфигурационные файлы php-fpm
e /etc/httpd/conf.d/php56-php.conf
- Код: выделить все
<IfModule !mod_php5.c>
# Enable http authorization headers
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
# !!!! Ограничиваем область действия версии PHP определённым хостом
<Directory "/var/www/forum.free-adm.ru/public_html">
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/opt/remi/php56/run/php-fpm/forum.sock|fcgi://localhost"
</FilesMatch>
# !!!!
</Directory>
</IfModule>
forum.sock это имя пула PHP-FPM. Для любого хоста может быть свой .sock файл пула со своими настройками для конкретного хоста. Описание самих пулов хранятся в конфигурационном каталоге php-fpm /etc/opt/remi/php56/php-fpm.d/forum.conf
- Код: выделить все
[forum]
user = apache
group = apache
listen = /var/opt/remi/php56/run/php-fpm/forum.sock
listen.acl_users = apache
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
php_admin_value[error_log] = /var/www/forum.free-adm.ru/log/forum-php-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/www/forum.free-adm.ru/sess
php_value[soap.wsdl_cache_dir] = /var/opt/remi/php56/lib/php/wsdlcache
php_admin_value[upload_tmp_dir] = /var/www/forum.free-adm.ru/tmp
имена .sock файлов и пути к ним должны совпадать в файле описания пулов php-fpm (/etc/opt/remi/php56/php-fpm.d/forum.conf) и конфигурационном файле WEB-сервера, подключающего php-fpm (/etc/httpd/conf.d/php56-php.conf)
Для вступления в силу изменений в конфигурации перезапускаем менеджер процессов FastCGI
- Код: выделить все
systemctl restart php56-php-fpm.service
Если используется модуль Apache для связи с PHP то перезапускаем Apache
- Код: выделить все
systemctl restart httpd.service
Либо можно так же ввести ограничения для иной версии PHP
- Код: выделить все
e /etc/httpd/conf.d/php.conf
не забываем также про знак "!" - отрицание, чтобы исключить хост(ы) из обработки конкретной версией PHP