在同一台服务器上运行两个PHP版本(STRETCH)

时间:2017-10-20 09:16:09

标签: php debian

我已经按照本教程在我的服务器上安装了php 5.6和php 7: Running two PHP versions on the same server

问题是我正在运行Debian 9 Stretch并且模块fastcgi不再可用。有proxy_fcgi,但它不包括FastCgiExternalServer。我读了很多东西,但我无法弄清楚如何更换它...任何想法?

<ifModule mod_proxy_fcgi.c>
   AddHandler php56-fcgi .php
   Action php56-fcgi /php56-fcgi
   Alias /php56-fcgi /usr/lib/cgi-bin/php56-fcgi
   FastCgiExternalServer /usr/lib/cgi-bin/php56-fcgi -socket /var/run/php/php5.6-fpm.sock -pass-header Authorization
   Action php70-fcgi /php70-fcgi
   Alias /php70-fcgi /usr/lib/cgi-bin/php70-fcgi
   FastCgiExternalServer /usr/lib/cgi-bin/php70-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
</IfModule>
<Directory /usr/lib/cgi-bin>
   Require all granted
</Directory>`

1 个答案:

答案 0 :(得分:0)

我花了一段时间才弄清楚要做什么,但最后我找到了一个简单的解决方案:

sudo apt-get install php5.6-fpm

sudo apt-get install php7.0-fpm

sudo a2enconf php5.6-fpm

如果你安装了php5.6和php5.7,请确保禁用这两个并重新启动apache。

sudo a2dismod php5.6 php7.0

sudo systemctl restart apache2

此时,您的所有网站都必须使用php 5.6。

对于需要php 7的网站,请在vhost中添加以下内容:

ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php/php7.0-fpm.sock|fcgi://localhost/path/to/my/main/file"

它应该做的伎俩:)