Debian 7.5
我的 80 端口 VirtualHost 与 fastcgi 的 ifmodule 配合使用效果很好。但是,它无法与 443 端口 VirtualHost 配合使用。
SSL/https:// 一直运行正常,直到我添加了以下内容:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>
当我尝试重新启动 Apache 时收到错误:
重新加载 Web 服务器配置:apache2 失败!
但是,如果我删除 FastCgiExternalServer 行,它就可以工作。
答案1
在您的 SSL 定义中,添加此
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgiSSL
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgiSSL -socket /var/run/php5-fpm.sock -pass-header Authorization
你遇到的错误是由于别名的双重定义造成的
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
通过创建另一个名称的别名(在本例中为 php5-fcgiSSL),您的问题就解决了
答案2
您可以通过端口或套接字连接到 FastCGI。
在令人反感的那句话中:
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock
您正在通过套接字连接。替换-socket
为-host
,例如-host 127.0.0.1:443