В этом примере объясняется, как назначать разные версии PHP для каждого каталога, его также можно адаптировать для добавления поддержки Python, запустив интерпретатор Python как fast_cgi
на конкретном порту
Для примера я предполагаю, что для каждой версии PHP есть отдельный каталог, и они называются в соответствии с версией PHP, которая их запускает, но это можно изменить
mkdir /home/user/www
mkdir /home/user/www/5.6.5
mkdir /home/user/www/7.0.2
mkdir /home/user/www/7.0.4
mkdir /home/user/www/7.0.6
создавать символические ссылки на каталоги, которые должны обрабатываться различными версиями PHP
sudo ln -s /home/user/www/7.0.2/ /var/www/html/7.0.2
sudo ln -s /home/user/www/7.0.4/ /var/www/html/7.0.4
sudo ln -s /home/user/www/7.0.6/ /var/www/html/7.0.6
затем добавьте следующие строки в /etc/apache2/sites-enabled/000-default.conf на виртуальном хосте по умолчанию *:80
(для ваших нужд вы можете установить здесь еще один быстрый обработчик cgi для веб-сайта, для которого требуется Python), я предполагаю, что php 5.6.5
работает на порту 9999
, 7.0.2
работает на порту 9998
и т. Д.
DirectoryIndex index.html index.php
ProxyPassMatch ^/5.6.5/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9999/var/www/html/
ProxyPassMatch ^/7.0.2/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9998/var/www/html/
ProxyPassMatch ^/7.0.4/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9997/var/www/html/
ProxyPassMatch ^/7.0.6/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9996/var/www/html/
при условии, что ваш сервер указан example.com
, вы можете проверить его на
http://example.com/5.6.5/
http://example.com/7.0.2/
http://example.com/7.0.4/
http://example.com/7.0.6/