我已经按照本教程在我的服务器上安装了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>`
答案 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"
它应该做的伎俩:)