我不知道为什么,但是当我尝试启动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的过程如下:
我从源码build立了mod_fcgid,把它放到/ etc / httpd / modules目录下。
我将LoadModule fcgid_module modules/mod_fcgid.so附加LoadModule fcgid_module modules/mod_fcgid.so列表中
我注释掉了LoadModule cgi_module modules/mod_cgi.so因为我不需要它。
我为php创build了一个包装脚本并将其放置在/ var / www / cgi-bin中:
我创build了一个指向包装器的PHP处理程序。
然后我尝试启动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有关。