After I install Mac OS X Mountain Lion, it seems like my Apache server can no longer start successfully:

[code lang=“bash”]bash-3.2# sudo tail /private/var/log/apache2/error_log

[Thu Aug 02 09:36:46 2012] [notice] caught SIGTERM, shutting down

[Thu Aug 02 09:37:57 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]

httpd: Could not reliably determine the server’s fully qualified domain name, using kahwee-mba.local for ServerName

[Thu Aug 02 09:37:57 2012] [notice] Digest: generating secret for digest authentication …

[Thu Aug 02 09:37:57 2012] [notice] Digest: done

[Thu Aug 02 09:37:57 2012] [notice] Apache/2.2.22 (Unix) DAV/2 mod_ssl/2.2.22 OpenSSL/0.9.8r configured — resuming normal operations

[Thu Aug 02 09:46:17 2012] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/favicon.ico

[Thu Aug 02 09:54:19 2012] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/r, referer: http://home.internal.kw.sg/

[Thu Aug 02 09:54:19 2012] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/favicon.ico

[Thu Aug 02 09:54:31 2012] [notice] caught SIGTERM, shutting down

[/code]

To find out why, run apachectl -t:

[code lang=“bash”]

bash-3.2# sudo apachectl -t

httpd: Syntax error on line 106 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_dav_fs.so into server: dlopen(/usr/libexec/apache2/mod_dav_fs.so, 10): Symbol not found: _dav_add_responsen Referenced from: /usr/libexec/apache2/mod_dav_fs.son Expected in: flat namespacen in /usr/libexec/apache2/mod_dav_fs.so

[/code]

Seems like it is caused by my disabling of mod_dav. mod_dav_fs acts as a support module for mod_dav and provides access to resources located in the server’s file system.

So I go to line 106 of /private/etc/apache2/httpd.conf and I comment out that line too.

[code lang=“bash”]sudo nano /private/etc/apache2/httpd.conf[/code]

Try to run the syntax check of Apache configuration again:

[sourcecode language=“bash”]

bash-3.2# sudo apachectl -t

Syntax OK

bash-3.2# [/sourcecode]

That seems to be working, now we start Apache:

[code lang=“bash”]sudo apachectl start[/code]

Useful apachectl commands include:

  • apachectl start
  • apachectl stop
  • apachectl restart
  • apachectl -t

Hope it helps!

comments powered by Disqus