Thursday 31 January 2013

Apache service starting error

Starting Apache
Sometimes Apache refuses to start. When this happens sweat instantly appears on your forehead because without apache running none of your website's are available. Here are some things you can try based on problems we've come across. Hitting the reset switch isn't the solution and not something you should do when you come across a problem like this.

Starting Apache
The correct way to start, stop or restart apache is by using the apachectl program. Such as:-
apachectl graceful
apachectl stop
apachectl restart

Checking Apache configuration
Apachectl can also be used to check the apache configuration, such as:-
apachectl configtest
This will return warnings and errors.

Check the Apache error logs
Take a look at the error logs (usually "/var/log/httpd/") and see if you can find what's causing the problem.

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
This is caused by one or more processes running on the 443 (secure socket) port. To fix this problem first find the process ID's that are running on port 443:-
fuser 443/tcp
This will return results which look something like:-
443/tcp: xxxx yyyy zzzz <- processes using 443
Where xxxx yyyy & zzzz are numbers for the process ID's. Now kill the processes with:-
Kill -9 xxxx yyyy & zzzz

Apache will not start. Error log contains:-
[emerg] (28)No space left on device: Couldn't create accept lock
or
[crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed
Checking your disk shows that you have plenty of space. The problem is that apache didn't shut down properly, and it's left myriads of semaphore-arrays left, owned by my apache-user. Run:-
ipcs -s | grep nobody
Removing these semaphores immediately should solve the problem and allow apache to start.
ipcs -s | grep nobody | perl -e 'while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}'

No comments:

Post a Comment