I'm not sure why, but when I try to start the httpd service, it will not start.

Server config:

OS: CentOS 5.10
PHP: 5.5.7
Apache: 2.2.3

Here's how I found out what was going on:

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

So I removed the subsys file for httpd, and I tried again, but it failed again.

My process for adding fcgid was as follows:

  1. I built mod_fcgid from source, put it into the /etc/httpd/modules directory.

  2. I appended LoadModule fcgid_module modules/mod_fcgid.so to the list of modules

  3. I commented out LoadModule cgi_module modules/mod_cgi.so since I will not need it.

  4. I created a wrapper script for php and placed it into /var/www/cgi-bin:

  5. I created a handler for PHP that points to the wrapper.

  6. Then I try to start the httpd service

The following is the error that I get in /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

I see that it says "File exits", but I've search everywhere for any extra files with "fcgi" in the name, and I can't find anything.

I'm not sure if this is a permissions issue, or something with SELinux perhaps - or maybe suEXEC?

I would appreciate any guidance, since I'm not even sure where to start searching.

I tried again, and the error was slightly different this time:

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

I'm not sure which folder or file I need to change ownership of.

I set SELinux to permissive and it allowed the process to start without issue - but I do not want to leave SELinux as such. I'll ask another question of how to allow Apache, fcgid, and PHP to work together under SELinux.

1 Answer 1


just to test SELinux part, try disabling it and see if that's the cause of your issue:

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

also, are you running doing it as chroot by any chance? I've had similar issue back to FreeBSD days, but that was related to jail/chroot.

  • I just tested that right as you were placing your answer - it does seem to be an issue SELinux. Unfortunately, I have absolutely 0 knowledge of SELinux, so I'm not sure what to do at this point. Any direction? I'm using nearly a nearly default configuration, and I myself haven't specifically set anything to use chroot, so unless it's somehwere in the default configuration for RHEL's default Apache installation, I'm not. Dec 16, 2013 at 21:11
  • if you "absolutely 0 knowledge of SELinux" i'd probably suggest you to keep it Disabled or Pemissive mode, at least until you're more comfortable w/ it.
    – alexus
    Dec 16, 2013 at 21:37
  • I'm going to keep it on permissive until I discover how to correctly allow fcgi, php, and apache to work together while SELinux is enforcing its policy. Dec 16, 2013 at 23:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.