This happens when the Apache web service fails to start. Often times because the config file has a bad line, or other configuration problem.
There are two separate problems and solutions listed below.
When you try to start apache, use the following command:
service httpd start
Here is the First error and fix - related to Semaphors:
Error when starting apache:
Nov 09 09:11:41 mypbx.mypbxurl.com systemd[1]: Starting The Apache HTTP Server...
Nov 09 09:11:41 mypbx.mypbxurl.com httpd[18378]: [Thu Nov 09 09:11:41.987504 2023] [so:warn] [pid 18378] AH01574: module ssl_module is already loaded, skipping
Nov 09 09:11:42 mypbx.mypbxurl.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Nov 09 09:11:42 mypbx.mypbxurl.com systemd[1]: Failed to start The Apache HTTP Server.
Nov 09 09:11:42 mypbx.mypbxurl.com systemd[1]: Unit httpd.service entered failed state.
Nov 09 09:11:42 mypbx.mypbxurl.com systemd[1]: httpd.service failed.
Actual Error log:
[root@abps1 httpd]# tail -f error_log
[Thu Nov 09 09:00:06.615632 2023] [suexec:notice] [pid 16364] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Nov 09 09:00:06.615655 2023] [core:emerg] [pid 16364] (28)No space left on device: AH00023: Couldn't create the proxy mutex
[Thu Nov 09 09:00:06.615664 2023] [proxy:crit] [pid 16364] (28)No space left on device: AH02478: failed to create proxy mutex
AH00016: Configuration Failed
[Thu Nov 09 09:01:16.791663 2023] [suexec:notice] [pid 16640] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Nov 09 09:01:16.792471 2023] [core:emerg] [pid 16640] (28)No space left on device: AH00023: Couldn't create the ssl-cache mutex
AH00016: Configuration Failed
[Thu Nov 09 09:06:20.946968 2023] [suexec:notice] [pid 17416] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Nov 09 09:06:20.947788 2023] [core:emerg] [pid 17416] (28)No space left on device: AH00023: Couldn't create the ssl-cache mutex
AH00016: Configuration Failed
There is plenty of disk space, so the error is not actually related to space. Issue is related to Apache not cleaning up Mutex semaphores. Article related to fix and description here:
Article reference:
https://serverfault.com/questions/991946/no-space-left-on-device-ah00023-couldnt-create-the-mpm-accept-mutex-when-re
"No space left on device: AH00023: Couldn't create the mpm-accept mutex" when restarting httpd
This is most likely caused by the semaphore limit of the OS, and Apache not properly cleaning up after itself.
See more details about semaphore limits https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/sect-oracle_9i_and_10g_tuning_guide-setting_semaphores-setting_semaphore_parameters
Those errors mean that there is a lack of inner-process communication resources in the system, such as semaphores or shared memory segments. Try running next to see if the semaphore limit is reached and see results:
ipcs -s | wc -l
cat /proc/sys/kernel/msgmni
cat /proc/sys/kernel/sem
Execute the following command via SSH or console and see if it helps :
ipcs -s | awk -v user=apache '$3==user {system("ipcrm -s "$2)}'
ipcs -s lists currently used semaphores.
awk -v user=apache filters out the ones, owned by apache user and next part executes icprm -s "id" for each of it which removes that semaphore.
I.e., whole command removes all semaphores owned by apache user.
Command to clean up all asterisk semaphores in apache:
ipcs -s | awk -v user=asterisk '$3==user {system("ipcrm -s "$2)}'
then go ahead and try to start apache:
service httpd start
The Second error and fix is just related to a bad ssl.conf, or OTHER interfereing .CONF files.
If when viewing the actual error logs for Apache, you see anything about net being able to bind to a socket because it is already bound, you most likely have either:
1) bad ssl.conf
2) Other files in the folder ending .conf that are not intended to be config files.
(I did this recently by naming a fie myconfig.bad.conf. The .conf at the end is still an active file. I should have renamed myconfig.conf.bad, then it would not interfere with apache loading)
In this case, just rename or move the wrong config file and issue the service httpd start command again and it should work.
Disclaimer
This information is intended for general information purposes only and to assist customers in understanding system functionality. It should not be construed as legal advice or opinion on any specific facts or circumstances. You are advised to consult your own compliance staff or attorney regarding your specific questions or situation to ensure your compliance with company policies & procedures, applicable laws, and regulations.