My VPS was restarted yesterday, and apparently Apache wasn't shut down gracefully. I tried to go to my website, but Apache wasn't running. I SSH'd into my machine to restart apache. I typed
/etc/init.d/httpd restart
I can't remember exactly what it said back to me, but it gave me the PID of Apache (1039) and said it was running. Apache was most definitely not running. I found this out by getting a list of all running processes:
ps -ax
That gave me a list of PIDs corresponding to programs, and 1039 was not httpd. It occurred to me that if Apache thinks it's running, it has to have some way of knowing that. In Apache's log file directory, there is a file which holds the PID of Apache when it's running. That file is called httpd.pid. By removing that file, Apache no longer thinks it's already running, and will actually try to start. If you don't know where httpd.pid is, run this command:
whereis httpd.pid
That should find it. If not, it is probably in /usr/local/apache2/logs if you installed with the default values. Then you just need to rm httpd.pid, and restart apache again. I got everything back up and running with just under 10 minutes of troubleshooting!