Установка второй версии 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