Activando Apache en Mac OS X Yosemite

Probablemente seas uno de esos usuarios de Mac OS X (al menos en cuanto a Sistema Operativo se refiere) que suele programar y que para ello requiere tener un entorno en el cual trabajar, la mayoría de las personas suelen programar en entornos de tipo LAMP (Linux, Apache, MySQL y PHP) y puede que al actualizar a Yosemite (dependiendo de la versión de OS X de la que vengas) te hayas dado cuenta de que ya no tienes la opción de habilitar Apache desde Preferencias del Sistema, pues la activación en Yosemite es muy sencilla y lo puedes conseguir con los siguientes simples pasos:

  1. Accedes al Terminal de OS X, puedes hacerlo presionando la tecla CMD + ESPACIO con lo cual se abrirá el prompt de Spotligh y en el puedes escribir terminal y presionar enter.
  2. Una ves en la consola o como llaman en OS X Terminal ejecutas el comando sudo apachectl start y a partir de ese momento ya puedes acceder desde tu navegador colocando en la barra de direcciones http://localhost

El tema es que lo que te mostrara el navegador en ese momento se trata del directorio por defecto de Apache en OS X que se encuentra ubicado en /Library/WebServer/Documents/ y puede que tengas tus documentos o proyectos Web en otro lugar y que no te haga gracia moverlo todo al directorio por defecto, con lo cual tienes que configurar Apache para que vea tu directorio Web, yo en mi caso suelo usar el directorio Web de mi usuario, por ejemplo Usuarios/usuario/Sites, para ello tienes que crear un archivo llamado usuario.conf dentro del directorio /etc/apache2/users con el siguiente contenido:

<Directory "/Users/username/Sites/">
  AllowOverride All
  Options Indexes MultiViews FollowSymLinks
  Require all granted
</Directory>

En el directorio has de cambiar username por el nombre corto de tu usuario de OS X, y guardas el archivo y compruebas que los permisos sean 644, para comprobarlo has de ejecutar el siguiente comando:

ls -l /etc/apache2/users/

El resultado tendría que ser algo como esto:

-rw-r--r--   1 root  wheel  298 Jun 28 16:47 username.conf

De no ser así puedes aplicar los permisos con el siguiente comando:

sudo chmod 644 /etc/apache2/users/username.conf

Luego de esto debes percatarte de que los módulos de Apache están cargados, tienes que modificar el archivo /etc/apache2/httpd.conf y en caso de estar comentadas debes desconectar las siguientes lineas:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

Luego debemos editar el archivo sudo nano /etc/apache2/extra/httpd-userdir.conf y descomentar la siguiente linea:

Include /private/etc/apache2/users/*.conf

Ahora solo reiniciamos el servicio de Apache con el siguiente comando:

sudo apachectl restart

Finalmente abrimos en nuestro navegador el directorio Web de nuestro usuario colocando la siguiente dirección en nuestro navegador favorito cambiando la palabra usuario por el nombre de nuestro usuario local:

http://localhost/~usuario

Y listo!, ya tenemos nuestro Apache configurado y apuntando a nuestro directorio Web en ves de al directorio Web por defecto, espero que os sirva!