Every time the server is rebooted, the directory /run/httpd is removed. /run is a tmpfs filesystem, therefore, mounted in RAM.
/run/httpd is created only during installation. When I start httpd after reboot, the directory isn't recreated.
Server has installed CentOS 7 and the oficial repository Apache package (v. 2.4.6-18).
After Apache install and start, the directory is as bellow:
# ls -alR /run/httpd/
/run/httpd/:
total 8
drwx--x---. 3 root apache 120 Sep 30 08:39 .
drwxr-xr-x. 28 root root 1020 Sep 30 08:37 ..
-rw-r--r--. 1 root root 8 Sep 30 08:39 authdigest_shm.2953
drwx------. 2 apache apache 40 Jul 23 10:48 htcacheclean
-rw-r--r--. 1 root root 5 Sep 30 08:39 httpd.pid
srwx------. 1 apache root 0 Sep 30 08:39 wsgi.2953.0.1.sock
/run/httpd/htcacheclean:
total 0
drwx------. 2 apache apache 40 Jul 23 10:48 .
drwx--x---. 3 root apache 120 Sep 30 08:39 ..
But after reboot:
# ls -l /run/httpd
ls: cannot access /run/httpd: No such file or directory
And here are the logs when trying to restart Apache:
/var/log/httpd/error_log
[Tue Sep 30 09:30:32.310825 2014] [core:notice] [pid 3370] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Sep 30 09:30:32.312072 2014] [suexec:notice] [pid 3370] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Sep 30 09:30:32.330380 2014] [auth_digest:notice] [pid 3370] AH01757: generating secret for digest authentication ...
[Tue Sep 30 09:30:32.330421 2014] [auth_digest:error] [pid 3370] (2)No such file or directory: AH01762: Failed to create shared memory segment on file /run/httpd/authdigest_shm.3370
[Tue Sep 30 09:30:32.330440 2014] [auth_digest:error] [pid 3370] (2)No such file or directory: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled
[Tue Sep 30 09:30:32.330445 2014] [:emerg] [pid 3370] AH00020: Configuration Failed, exiting
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
/var/log/message
Sep 30 08:56:09 brejetuba2 systemd: Starting The Apache HTTP Server...
Sep 30 08:56:09 brejetuba2 systemd: httpd.service: main process exited, code=exited, status=1/FAILURE
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Sep 30 08:56:09 brejetuba2 systemd: Failed to start The Apache HTTP Server.
Sep 30 08:56:09 brejetuba2 systemd: Unit httpd.service entered failed state.
/var/log/audit/audit.log
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
type=SERVICE_START msg=audit(1412083740.602:469): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg=' comm="httpd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
When I create the directory manually, Apache starts:
# mkdir /run/httpd
# systemctl restart httpd
# ls -lRa /run/httpd/
/run/httpd/:
total 8
drwxr-xr-x. 2 root root 100 Sep 30 09:36 .
drwxr-xr-x. 28 root root 1020 Sep 30 09:36 ..
-rw-r--r--. 1 root root 8 Sep 30 09:36 authdigest_shm.3452
-rw-r--r--. 1 root root 5 Sep 30 09:36 httpd.pid
srwx------. 1 apache root 0 Sep 30 09:36 wsgi.3452.0.1.sock
And after reboot, it's gone again.
Any thoughts on why this is happening?
Best Answer
The issue was that, when installing Apache, group apache wasn't being created.
That's because I've a NIS server configured, whith a NIS apache user. As it has an apache user, Apache installation doesn't create apache group. But apache group also exists on NIS! Well, NIS is messing up things.
Bottom line is: I have to stop ypbind, install Apache and then restart ypbind (or just create manually a apache group in /etc/group).