Одновременную работу с разными версиями PHP можно обеспечить, установить два PHP-FPM сервиса. Первый (PHP 7) из родного репозитория, а второй (5.6) из репозитория Remi.
Подключаем репозиторий Remi:
|
# dnf install remi-release |
Устанавливаем все необходимое для работы с PHP версии 5.6:
|
# dnf --enablerepo=remi install \ php56 \ php56-php-fpm \ php56-php-mysqlnd \ php56-php-gd \ php56-php-pecl-xdebug \ php56-php-mbstring |
В конфиге PHP-FPM 5.6. комментируем обработчик для PHP-файлов. По умолчанию будет отрабатывать PHP-FPM 7 версии.
|
# vi /etc/httpd/conf.d/php56-php.conf |
|
# Redirect to local php-fpm if mod_php is not available <IfModule !mod_php5.c> # Enable http authorization headers # SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 # <FilesMatch \.php$> # SetHandler "proxy:unix:/var/opt/remi/php56/run/php-fpm/www.sock|fcgi://localhost" # </FilesMatch> </IfModule> |
В настройках виртуального хоста нужного сайта добавляем обработчик PHP-FPM:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<VirtualHost *:80> ServerName stmaster.local DocumentRoot /var/www/test.local/www ErrorLog /var/www/test.local/log/error.log CustomLog /var/www/test.local/log/requests.log combined <Directory /var/www/test.local/www> Options Indexes FollowSymLinks AllowOverride All DirectoryIndex index.php index.html index.htm Order deny,allow allow from all Require all granted </Directory> <FilesMatch \.(htaccess|htpasswd|svn|git)> Deny from all Satisfy All </FilesMatch> # Redirect to local php-fpm56 # Enable http authorization headers SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 <FilesMatch \.php$> SetHandler "proxy:unix:/var/opt/remi/php56/run/php-fpm/www.sock|fcgi://localhost" </FilesMatch> </VirtualHost> |
В модуле XDebug для 5.6 устанавливаем порт отличный от порта в 7-й версии, например, 9001
Для увеличения максимального времени исполнения для отладки нужно сделать, как рекомендуют тут:
|
<Proxy "unix:/var/opt/remi/php56/run/php-fpm/www.sock|fcgi://localhost"> ProxySet timeout=600 </Proxy> <FilesMatch \.php$> SetHandler "proxy:fcgi://localhost" </FilesMatch> |