解决apache+fastcgi+php配置好不能访问的问题

在一台服务器上部署应用,发现已有的php版本较老,直接升级又怕影响现有应用,于是决定两个版本并存,并通过fastcgi方式调用php。

安装和设置过程简要如下:

# 安装fastcgi模块
yum install mod_fcgid

设置apache通过fastcgi方式调用php:


    Options +ExecCGI
    Require all granted

    AddHandler fcgid-script .php
    FcgidWrapper "/bin/php-cgi" .php

设置好后,写一个测试文件hello.php放到对应目录下:



var_dump(PHP_SAPI);

一访问,发现无法用,症状是浏览器一直在等待服务器响应。这说明配置已经生效,而问题应该出在apache与php之间的交互上。

检查日志/var/log/httpd/error_log,果然发现有很多像这样的错误行:

[fcgid:error] [pid 21678] (13)Permission denied: mod_fcgid: couldn't bind unix domain socket /run/mod_fcgid/21678.0

查看了一下目录/run/mod_fcgid,发现创建者是root,其它用户没有写权限。于是将该目录的所有者或权限更新一下,然后就能够成功访问了:

# 改为apache使用的用户,比如www:
chown -R www:www /run/mod_fcgid
# 或者加读写权限:
chmod 777 /run/mod_fcgid

你可能感兴趣的:(解决问题)