服务httpd无法启动 – fcgid无法创build共享内存

我不知道为什么,但是当我尝试启动httpd服务时,它不会启动。

服务器configuration:

OS: CentOS 5.10 PHP: 5.5.7 Apache: 2.2.3 

以下是我如何了解发生了什么事情:

 $ sudo service httpd start Starting httpd: [ OK ] $ sudo service httpd status httpd dead but subsys locked 

所以我删除了子目录文件的httpd,我再次尝试,但它再次失败。

我添加fcgid的过程如下:

  1. 我从源码build立了mod_fcgid,把它放到/ etc / httpd / modules目录下。

  2. 我将LoadModule fcgid_module modules/mod_fcgid.so附加LoadModule fcgid_module modules/mod_fcgid.so列表中

  3. 我注释掉了LoadModule cgi_module modules/mod_cgi.so因为我不需要它。

  4. 我为php创build了一个包装脚本并将其放置在/ var / www / cgi-bin中:

  5. 我创build了一个指向包装器的PHP处理程序。

  6. 然后我尝试启动httpd服务

以下是我在/ var / log / httpd / error_log中得到的错误:

 [Mon Dec 16 12:18:26 2013] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0 [Mon Dec 16 12:18:26 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Mon Dec 16 12:18:26 2013] [notice] SSL FIPS mode disabled [Mon Dec 16 12:18:26 2013] [notice] Digest: generating secret for digest authentication ... [Mon Dec 16 12:18:26 2013] [notice] Digest: done [Mon Dec 16 12:18:26 2013] [emerg] (17)File exists: mod_fcgid: Can't create shared memory for size 1200712 bytes 

我看到它说“文件退出”,但我已经search到任何额外的文件与“fcgi”的名字,我什么都找不到。

我不确定这是否是一个权限问题,或者与SELinux可能 – 或者可能是suEXEC?

我会很感激任何指导,因为我甚至不知道从哪里开始search。


我又试了一次,这次错误有点不同了:

 [Mon Dec 16 12:50:23 2013] [emerg] (13)Permission denied: mod_fcgid: Can't create shared memory for size 1200712 bytes 

我不确定哪个文件夹或文件需要更改所有权。


我把SELinux设置为permissive ,它允许进程没有问题的启动 – 但我不想离开SELinux。 我会问另一个如何让Apache,fcgid和PHP在SELinux下一起工作的问题。

只是为了testingSELinux一部分,尝试禁用它,看看是否是你的问题的原因:

 [alexus@XXXXXXXXXX ~]$ getenforce Enforcing [alexus@XXXXXXXXXX ~]$ sudo setenforce 0 [alexus@XXXXXXXXXX ~]$ getenforce Permissive [alexus@XXXXXXXXXX ~]$ 

而且,你是否正在以chroot的方式运行呢? 我已经有类似的问题回到FreeBSD的日子了,但是这与jail / chroot有关。