使用Apache 2.2.22和Ubuntu 12.10 – 500的PHP-FPM错误,或返回文本(不执行)

我正在学习本教程 ,尝试在我的LAMP堆栈上安装PHP-FPM。

我在/etc/apache2/sites-available/default包含(根据指南)

 <IfModule mod_fastcgi.c> Alias /php5.fastcgi /var/www/fastcgi/php5.fastcgi AddHandler php-script .php FastCGIExternalServer /var/www/fastcgi/php5.fastcgi -socket /var/run/php-fpm.sock Action php-script /php5.fastcgi virtual # This part is not necessary to get it to work, but it stops anything else from being # accessed from it by mistake or maliciously. <Directory "/var/www/fastcgi"> Order allow,deny <Files "php5.fastcgi"> Order deny,allow </Files> </Directory> </IfModule> 

导致500错误。 我检查了Apache日志,并看到:

(111)连接被拒绝:FastCGI:无法连接到服务器“/ usr / lib / cgi-bin / php5-fcgi”:connect()failed FastCGIExternalServer /var/www/fastcgi/php5.fastcgi -socket / var / run / PHP-fpm.sock
FastCGI:从服务器“/ usr / lib / cgi-bin / php5-fcgi”收到的不完整标题(0字节)

我检查并意识到我的/etc/php5/fpm/pool.d/www.conf正在监听一个不同的套接字位置(从教程),所以我更新了Apacheconfiguration:

FastCGIExternalServer /var/www/fastcgi/php5.fastcgi -socket /var/run/php5-fpm.sock

但是现在访问一个php5脚本只是显示纯文本。

我不知道我要去哪里错了,谁能指出我在正确的方向来解决这个问题? 不幸的是,我发现的一切都是非常面向NGINX的(或者用户完全切换到NGINX!)我现在有点依赖于Apache,因为我依靠.htaccess的WordPress和永久链接重写等。

提前感谢不尽。

尝试在httpd.conf中的FastCgiExternalServer中使用参数-idle-timeout和-appConnTimeout。 检查这个语法

万一它有帮助…我有系统的500内部错误,不得不努力使php-fpmUbuntu 14.04 LTS Trusty上的ApacheIPSCONFIG一起工作,使用Falko教程构build

这是我工作的PHP-FPMconfiguration:

  • /etc/php5/fpm/pool.d/www.conf

     user = www-data group = www-data listen.owner = www-data listen.group = www-data listen.mode = 0660 listen = /var/run/php5-fpm.sock pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 pm.max_requests = 2000 pm.status_path = /fpm_status?full chdir = / 
  • /etc/php5/fpm/php-fpm.conf

     pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log include=/etc/php5/fpm/pool.d/*.conf 
  • /etc/apache2/conf-enabled/php-fpm.conf

     <IfModule mod_fastcgi.c> Alias /php-fcgi /usr/lib/cgi-bin/php5 AddHandler php .php Action php /php-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600 <Directory /usr/lib/cgi-bin> AllowOverride All Options +ExecCGI +FollowSymLinks Require all granted </Directory> </IfModule> 
  • 我不得不chmod 666 /var/run/php5-fpm.sock

  • 最后,但这是特定于Ispconfig ,当我将PHP-FPM的网站设置为IspConfig时,它在其启用站点的虚拟主机中写入以下行:

     Alias /php5-fcgi ALIAS_PATH&NAME FastCgiExternalServer ALIAS_PATH&NAME -idle-timeout 300 -host 127.0.0.1:9016 -pass-header Authorization</code> 

    我必须将-host 127.0.0.1:9016更改为-socket /var/run/php5-fpm.sock ,然后才能正常工作。

只是不知道IspConfig从何处获取错误信息。

我已经解决了这个问题,在Ubuntu 14.XX的Ispconfig,Apache和PHP-FPM只是这样使用:

 chmod 666 /var/lib/php5-fpm/web104.sock 

其中web104是托pipe“web104”的实例。

希望这可以帮助!