这个例子解释了如何为每个目录分配不同的 PHP 版本。它还可以通过在特定端口上以fast_cgi 的身份运行 Python 解释器来添加 Python 支持。
出于示例的目的,我假设每个 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
然后将以下行添加到默认虚拟主机*:80中的/etc/apache2/sites-enabled/000-default.conf中
(根据您的需要,您可以在此处为需要 Python 的网站多设置一个 FastCGI 处理程序)。我假设 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/