Я установил коллекцию версий PHP из репозиториев Remi, которые могут быть проигнорированы для самого вопроса, но сохранены для понимания обработанного мною процесса.
Они отлично работают из командной строки, но я бы хотел использовать их с Apache 2 (httpd на Fedora 24), используя несколько виртуальных хостов, как в:
php54.test
php55.test
php56.test
php70.test
php71.test
Я создал conf файлы VirtualHost, и каждый работает нормально.
Я хочу запустить каждую соответствующую версию PHP (в соответствии с намекающим ServerName), но я не могу найти, как загрузить PHP с каждого виртуального хоста.
Я не смог найти соответствующий Remi libphpX.so для загрузки их в виде модулей:
<VirtualHost *:80>
ServerName php54.test
DocumentRoot /var/www/php54
#SOMETHING LIKE THIS...
LoadModule php??_module modules/libphp??.so
</VirtualHost>
У меня есть, и это не новость, общий хостинг, который позволяет мне менять версию PHP с .htaccess, и я могу сделать что-то вроде этого:
AddHandler application/x-httpd-php54 .php
AddHandler application/x-httpd-php55 .php
AddHandler application/x-httpd-php56 .php
AddHandler application/x-httpd-php7 .php
AddHandler application/x-httpd-php71 .php
Сейчас я могу выглядеть как дурачок, но как я могу сделать то же самое переключение .htaccess для нескольких доступных версий PHP?
Я, вероятно, не знаю, что и как искать в Google, чтобы найти наиболее подходящий ответ.
Вы не можете использовать несколько версий mod_php.
Лучшее решение — использовать php-fpm (Fastcgi Process Manager), используя в каждом vhost сервер SetHandler to fcgi:
SetHandler "proxy:fcgi://127.0.0.1:9070"
Или (используя сокет домена unix)
SetHandler "proxy:unix:/var/opt/remi/php70/run/php-fpm/www.sock|fcgi://localhost"
Это описано в этой статье: Моя рабочая станция PHP.
Других решений пока нет …