OSX how to show apache status in terminal?
Solution 1:
I have the same problem on my mac. When ever I attempt to start apache and nothing happens, I immediately run this command. In my case the problem always seems to be in the apache configuration files.
apachectl configtest
Solution 2:
apachectl
on the Mac is a wrapper around some launchctl
commands (just look into the file). Unfortunately, launchctl doesn't exit with an error code when something goes wrong with starting httpd
, so the script has no easy way to display anything, even if it tries to.
A basic check you can perform yourself is to check the existence of Apache processes after the apachectl start
command.
ps aux | grep httpd
Solution 3:
How about in the apachectl wrapper script you stick something like this at the end.
tail -5 /var/log/httpd/error_log
you should see something like this in a normal startup
- [Fri Apr 22 23:39:20 2011] [notice] Digest: generating secret for
digest authentication ... - [Fri Apr 22 23:39:20 2011] [notice] Digest: done
- [Fri Apr 22 23:39:20 2011] [warn] pid file
/mlk/apache/pid/httpd.pid overwritten -- Unclean shutdown of previous Apache run? - [Fri Apr 22 23:39:20 2011] [notice] Apache/2.0.63 (Unix) DAV/2 configured -- resuming normal operations
Otherwise any error should at least in part be shown here. The key phrase is hilighted above.
Additional: /usr/sbin/apachectl is owned by root, you must be a privileged user to do this. sudo vi /usr/sbin/apachectl
move to the end of the file and insert this between the "esac" and "exit $ERROR" lines. ie.
esac
sleep 2; tail -5 /var/log/httpd/error_log
exit $ERROR
Note this will print out the last few lines no matter what action you take with the script, stop start, restart. you may want to only put it in the start part of the case statement.