Hace algun tiempo, Apple anuncio su nuevo sistema operativo Mountain Lion. Por el momento este nuevo sistema operativo esta disponible unicamente para desarrolladores.
No me pude resistir e hice el update de Lion a Mountain Lion. Un compañero de trabajo, me pregunto si funcionaba bien Apache y PHP, pero en ese momento no tenia ningun proyecto para probar, asi que intente levantar un simple script de PHP para probar; lamentablemente no obtuve resultado:
Entonces abri las System Preferences para verificar que la opcion de Web Sharing estuviera habilitada, pero para mi sorpresa Mountain Lion NO TIENE ESTA OPCION!
Esto quiere decir que ahora tendremos que iniciar Apache desde la terminal:
sudo apachectl start
Sin emgargo, Apache no estaba iniciando y los logs mostraban unicamente que “Apache habia terminado con status 1“. Por lo que habia que debuggear un poco mas, entonces ejecute el siguiente comando:
sudo bash -x /usr/sbin/apachectl -k start
Y me mostro la siguiente informacion:
+ ARGV='-k start' + HTTPD=/usr/sbin/httpd + test -f /usr/sbin/envvars + . /usr/sbin/envvars ++ DYLD_LIBRARY_PATH=/usr/lib: ++ export DYLD_LIBRARY_PATH + LYNX='lynx -dump' + STATUSURL=http://localhost:80/server-status + ULIMIT_MAX_FILES= + LAUNCHCTL=/bin/launchctl + LAUNCHD_JOB=/System/Library/LaunchDaemons/org.apache.httpd.plist + '[' x '!=' x ']' + ERROR=0 + '[' 'x-k start' = x ']' + case $ARGV in + /usr/sbin/httpd -k start httpd: Syntax error on line 114 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_userdir_apple.so into server: dlopen(/usr/libexec/apache2/mod_userdir_apple.so, 10): image not found + ERROR=1 + exit 1
Entonces nos podemos dar cuenta que no puede cargar el modulo mod_userdir_apple.so, entonces abri el archivo httpd.conf
sudo nano /etc/apache2/httpd.conf
y busque el modulo y comente los dos modulos especificos de Apple:
#LoadModule apple_userdir_module libexec/apache2/mod_userdir_apple.so #LoadModule bonjour_module libexec/apache2/mod_bonjour.so
Reinicie apache:
sudo apachectl restart
Y me mostro el clasico texto It works! pero no cargo el script que originalmente queria probar, el cual se encontraba en ~/Sites/test.php, por lo que regrese al archivo httpd.conf y apunte el DocumentRoot a:
DocumentRoot "/Users/{user}/Sites"
Reinicie apache de nuevo y ahora ya todo funciono! Espero que este post les ayude a no perder mucho tiempo intentando configurar Apache.



