En este ejemplo se explica cómo asignar diferentes versiones de PHP por directorio, sino que también se puede adaptar para añadir soporte de Python mediante la ejecución de Python intérprete como fast_cgi
en particular, el puerto
Para el propósito del ejemplo, supongo que hay un directorio separado para cada versión de PHP y se nombran según la versión de PHP que los ejecuta, pero esto se puede ajustar
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
crear enlaces simbólicos a directorios que deben ser manejadas por diferentes versiones de 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
a continuación, añadir las siguientes líneas a /etc/apache2/sites-enabled/000-default.conf de máquina virtual predeterminada *:80
(para su necesidad se puede configurar una más rápida controlador CGI aquí por la página web que requiere Python), supongo php 5.6.5
ejecuta en el puerto 9999
, 7.0.2
ejecuta en el puerto 9998
etc ...
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/
Asumiendo que su servidor está apuntado por example.com
puedes probarlo en
http://example.com/5.6.5/
http://example.com/7.0.2/
http://example.com/7.0.4/
http://example.com/7.0.6/
Bueno el problema es que tengo solamente 1 dominio sin posibilidad de añadir más subdominios. Y necesito ejecutar 3 aplicaciones diferentes en él. La directiva de directorio no es una opción, ya que no puedo colocar scrpits de inicio de WSGI en ella. – Ruslan
@Ruslan: sin experiencia de WSGI, un escaneo rápido de los documentos indica que puede 'WSGIScriptAlias / app1/usr/local/wsgi/scripts/app1.wsgi' seguido de' WSGIScriptAlias / app2/usr/local/wsgi/scripts/app2.wsgi', etc. No estoy seguro si eso es suficiente? – PtPazuzu
Bueno, estoy terminando con WSGIScriptAlias no permitido aquí error – Ruslan