错误日志中的FastCgiIpcDir问题
您好,
我在Apache错误日志中注意到以下错误(错误1):
[Wed Feb 08 14:00:06 2012] [alert] [client 41.185.88.175] (2)No such file or directory: FastCGI: failed to connect to (dynamic) server "/var/www/bin/php-splashpage-user/php-fastcgi": something is seriously wrong, any chance the socket/named_pipe directory was removed?, see the FastCgiIpcDir directive
之后直接出现此错误(错误2):
[Wed Feb 08 14:00:06 2012] [error] [client 41.185.88.175] FastCGI: incomplete headers (0 bytes) received from server "/var/www/bin/php-splashpage-user/php-fastcgi"
如何修复错误1?
我读到了由于主机系统定期清除“/ tmp”目录(如果没有定义fastCgiIpcDir的默认目录)而导致更改此问题,从而消除了与当前活动的FastCGI服务的通信。所以我决定试一试。为了成功,我在fastcgi.conf文件中设置了FastCgiIpcDir,但根本没有变化。
这是我的fastcgi.conf文件的内容:
<IfModule mod_fastcgi.c>
FastCgiIpcDir /var/lib/apache2/fastcgi_test
FastCgiConfig -idle-timeout 60 -maxClassProcesses 1
FastCgiWrapper On
AddHandler php5-fcgi .php
Action php5-fcgi /cgi-bin/php-fastcgi
<Location "/cgi-bin/php-fastcgi">
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
Options ExecCGI
SetHandler fastcgi-script
</Location>
</IfModule>
/ var / lib / apache2 / fastcgi_test的权限和服务:
drwxr-xr-x 3 www-data www-data 4.0K 2012-02-08 09:20 fastcgi_test
我的php包装器脚本php_fastcgi有以下几行:
#!/bin/sh
PHP_FCGI_CHILDREN=120
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_MAX_REQUESTS
umask 0022
exec /usr/bin/php-cgi -d apc.shm_size=50
我正在运行PHP 5.3.1,Apache / 2.2.14,Ubuntu 10.04。
到目前为止,我已经提到了一些事情:
从使用mod_FastCgi我了解到增加子进程有助于缓解一些“错误2”错误(这会导致随机间隔的HTTP 500错误)。目前我不太确定错误1的影响是什么,但如果错误2直接跟在之后,那么可以肯定地说这不是一件好事。
Fastcgi通过久经考验的解决方案报告的错误信息非常少(如果有的话)。可悲的是,我可能只是在网上发布了一堆没有结论的Fastcgi错误。
我们很乐意为您提供解决错误1的帮助,建议或提示。
答案 0 :(得分:0)
我不知道如何使用包装器和suexec,但你应该试试这个:
链接中的解决方案甚至不使用suexec,也不使用包装器,这种方式至少可以使用。
所需的步骤:
0)安装php5-fpm,如果尚未安装,则安装apache-mpm-worker
1)评论这一行:
#FastCgiWrapper On
2)制作别名:
Alias /cgi-bin/php-fastcgi **/var/something**
3)fastcgiexternalserver:
FastCgiExternalServer **/var/something** -socket php5-fpm-site1user.sock
(强类型路径必须相同)
4)在php5-fpm / pool.d / site1user.conf
中设置conf[site1user]
user = site1user
group = site1user
listen = /var/run/php5-fpm-site1user.sock
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
5)重启fpm 服务php5-fpm重启
6)为了更深入的了解,请在此处查看我的其他答案