我正在学习本教程 ,尝试在我的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-fpm与Ubuntu 14.04 LTS Trusty上的Apache和IPSCONFIG一起工作,使用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”的实例。
希望这可以帮助!