Sí eres desarrollador web y necesitas tener Apache, PHP y MySQL funcionando en tu nuevo sistema operativo OS X Mavericks, esta guía te va a ayudar a instalarlo y configurarlo. También sé que existen herramientas que incluyen todo el paquete configurado cómo MAMP y XAMP pero lo cierto es que yo prefiero instalar todo desde cero para evitar problemas a la hora de querer actualizar o instalar extensiones de PHP, cómo por ejemplo la extensión Intl que se requiere para trabajar con Symfony.

Si haz actualizado desde Mac OS X 10.8 Mountain Lion y tenías ya todo configurado, tu MySQL, Apache y la configuración de phpMyAdmin deben seguir funcionando sin problema, ahora sólo tienes que activar PHP. Pero si haz hecho una instalación limpia de OS X Mavericks sigue todos los pasos.

Para tener tu servidor local de desarrollo con Apache, PHP y MySQL vas a dividir esta guía en estos pasos:

  1. Habilitar Apache
  2. Configurar el DocumentRoot en Apache
  3. Configurar los .htaccess para que permitan sobreescribir
  4. Habilitar PHP
  5. Instalar y configurar MySQL
  6. Instalar phpMyAdmin
  7. Configurar permisos

1. Habilitar Apache

Apache está preinstalado en el sistema operativo y solamente le falta ser activado a través de la línea de comandos, esto se hace desde la aplicación llamada Terminal que se encuentra en /Applications/Utilities/Terminal

Para aquellos no familiarizados con la Terminal, en realidad no es tan complicado como puede parecer, una vez que abras la Terminal tienes una ventana lista para que escribas los comandos, puedes solamente copiar y pegar los comandos aquí mencionados y presionar Enter, algunos comandos no dan respuesta, sólo significa que el comando se llevó a cabo, otros comandos dan información, etc. Pasemos a la acción.

Para iniciar Apache escribe este comando en la Terminal:

sudo apachectl start

Después de poner este comando te va a pedir la contraseña de administrador, esto es porque estamos usando el comando sudo para ejecutar apache con permisos de administrador.

Ahora cuando quieras apagar Apache usa este comando:

sudo apachectl stop

Para reiniciar Apache

sudo apachectl restart

Para mostrar la versión actual de Apache

httpd -v

La versión de Apache instalada en OS X Mavericks es la Apache/2.2.24

Después de iniciar Apache, prueba desde el navegador que el servidor web esté funcionando, escribe la dirección http://localhost y deberás ver en tu navegador el texto: It works!.

1 - Iniciar Apache en OS X Mavericks

2. Configurar el DocumentRoot en Apache

El DocumentRoot (directorio raíz) es el lugar donde se almacenan los archivos que nuestro servidor va a compartir, es el equivalente a los \’public_html\’ y \’htdocs\’, OS X ha tenido históricamente 2 directorios raíz, uno a nivel de sistema y otro a nivel de usuario, puedes usar ambos o solamente trabajar con uno, la ventaja del de nivel de usuario es que permite que cada usuario tenga su propia carpeta raíz, mientras que el que está a nivel sistema es global para todos los usuarios. Además al usar el de nivel de usuario evitará que tengas que escribir la contraseña de administrador cada vez que quieras hacer una modificación a los archivos dentro de la carpeta raíz.

La ruta de la carpeta raíz a nivel de sistema es la siguiente:

/Library/WebServer/Documents/

Mientras que la carpeta raíz a nivel de usuario puede ser la que tu quieras, pero tradicionalmente en OS X se usa la siguiente

/Users/tu usuario/Sites 

Cómo configurar la carpeta raíz a nivel de usuario

La otra carpeta raíz que no se encuentra de manera predeterminada es la carpeta ~/Sites dentro de la carpeta de usuario. Es necesario crear una carpeta llamada Sites en la raíz de tu carpeta de usuario, en mi caso mi isiario es «carlos» por lo tanto la raíz de mi carpeta de usuario es «/Users/carlos/«. Si estás actualizando a OS X Mavericks desde una versión anterior de OS X, se preserva la carpeta Sites, pero se elimina la configuración que hacía que fuera la carpeta raíz. No te preocupes, sigue estos pasos para configurar Sites como la carpeta raíz (DocumentRoot). Para esto se necesita añadir un archivo con el nombre carlos.confdonde carlos es el nombre de usuario de tu cuenta en OS X, en mi caso carlos, a continuación te digo como crearlo.

2 - Crear carpeta Sites en usuario

Primero verifica que no tengas un el archivo carlos.conf en la siguiente ruta con el comando:

cd /etc/apache2/users

ls

Si no hay un archivo llamado carlos.confcrealo, para eso vamos a usar un editor de texto desde la Terminal llamado nano, ejecuta el siguiente comando (recuerda reempazar «carlos» por tu nombre de usuario):

sudo nano carlos.conf

Agregar este código dentro del archivo recién creado, recuerda reempazar «carlos» por tu nombre de usuario.

<Directory "/Users/carlos/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Después de pegar el código en nano presiona ctrl + o y luego Enter para guardar y luego ctrl + x para cerrar nano.

Ahora cambia los permisos al archivo con este comando (recuerda reempazar «carlos» por tu nombre de usuario):

sudo chmod 644 username.conf

Finalmente reinicia Apache para que los cambien tengan efecto, con este comando:

sudo apachectl restart

Ahora el contenido de «Sites» es accesible desde la URL: http://localhost/~carlos/

3. Configurar los .htaccess para que permitan sobreescribir

Por default Apache tiene desahibitada la posibilidad de usar nuestros .htaccess para sobre escribir las configuraciones por defecto, para corregir esto vamos a editar el archivo httpd.conf ubicado en: /etc/apache2/httpd.conf lo abrimos y buscamos la línea 217 que dice AllowOverride none y lo cambiamos por AllowOverride all

3 - Habilitar AllowOverride

Finalmente reinicia Apache para que los cambien tengan efecto, con este comando:

sudo apachectl restart

4. Habilitar PHP

OS X Mavericks viene con PHP 5.4.17 pero para que funcione debe ser activado editando el archivo httpd.conf.

sudo nano /etc/apache2/httpd.conf

Utiliza ctrl + w para buscar dentro de nano y la busca php este esto te llevará a la línea que contiene lo siguiente pero que está comentada con un # al inico de la línea, para descomentar simplemente elimina el # al inicio de la línea para que quede con la siguiente:

LoadModule php5_module libexec/apache2/libphp5.so

Para finalizar ctrl + o y luego Enter para guardar y luego ctrl + x para cerrar nano.

Reinicia Apache para que los cambien tengan efecto, con este comando:

sudo apachectl restart

Para ver y probar PHP, crea un archivo llamado phpinfo.php y colócalo en la carpeta Sites con el siguiente contenido, y luego míralo en el navegador.

<php phpinfo(); ?>

5. Instalar y configurar MySQL

MySQL es un componente que OS X ya no incluye de serie como antes, ahora es necesario descargarlo desde el sitio de MySQL (Sitio para descargar MySQL), en el sitio de descarga elige la versión llamada Mac OS X 10.7 (x86, 64-bit), DMG Archive esta versión funciona bien en OS X Mavericks.

Al descargar MySQL no tienes que registrarte, buscar al final de la página de descarga el enlace que dice: No thanks, just take me to the downloads para pasar directamente a la descarga sin registro.

Una vez descargado MySQL abre el .dmg y verás 3 componentes, instala los 3. Es posible que necesites ajustar las preferencias de seguridad y privacidad de OS X para permitir instalaciones de aplicaciones de terceros, en caso de que no te deje instalarlo ve a «Preferencias del sistema» -> «Seguridad y privacidad» y ahí marca la opción que dice «Permitir aplicación descargadas de:» -> «Cualquier sitio».

4 - Instalar MySQL en OS X Mavericks

Primero instala mysql-5.x.x…, luego MySQLStartupItem.pkg que permite iniciar MySQL cuando la Mac se inicia y el tercero es una preferencia del sistema que permite iniciar y/o detener MySQL.

Puedes iniciar el servidor MySQL desde las Preferencias del sistema o a través de la Terminal.

5 - Iniciar MySQL desde Preferencias del sistema

Comando para iniciar MySQL

sudo /usr/local/mysql/support-files/mysql.server start 

Comando para ver la versión de MySQL desde la Terminal:

/usr/local/mysql/bin/mysql -v

Después de la instalación, con el fin de utilizar los comandos de MySQL en la Terminal sin tener que escribir la ruta completa hacia los comandos. Vamos a agregar el directorio mysql a tu shell path, (paso opcional) esto se hace en el archivo «.bash_profile» que está en tu carpeta de usuario, si no tienes ese archivo sólo créalo con vi o nano con este comando:

cd ; nano .bash_profile

Y pega esta línea dentro del archivo:

export PATH="/usr/local/mysql/bin:$PATH"

Ahora ctrl + o y luego Enter para guardar y luego ctrl + x para cerrar nano.

La última cosa que hay que hacer aquí es para recargar la shell para que todo funcione, con el siguiente comando:

source ~/.bash_profile

Ahora prueba el con el comando:

mysql -v

Si todo salió bien te debe mostrar la versión de MySQL, ahora solamente presiona \\q para salir de MySQL.

Configurar la contraseña root de MySQL

Es importante que sepas que la contraseña del usuario root de MySQL no es la misma que se usa como admin en OS X, algunas personas la confunden, la contraseña para el usuario root es una contraseña que te permitirá gestionar MySQL.

Para asignar la contraseña al usuario root usa el siguiente comando (recuerda reemplazar aquí_va_tu_contraseña por la contraseña que quiere utilizar):

/usr/local/mysql/bin/mysqladmin -u root password \'aquí_va_tu_contraseña\'

Usa comillas simples entre la contraseña

6. Instalar phpMyAdmin

Antes de instalar phpMyAdmin tal vez desees darle un vistazo a Sequel Pro es una apliación gratuita que te permite gestionar MySQL en una interfaz amigable y fácil de usar, últimamente la he usado más que phpMyAdmin, página de descarga de Sequel Pro.

Para instalar phpMyAdmin primero debes ejecutar estos comando para corregir el «mysql 2002 socket error«:

sudo mkdir /var/mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Descarga phpMyAdmin, en un archivo .zip y descomprímelo y nombra a la carpeta phpmyadminluego mueve esa carpeta y colócala dentro de la carpeta Sites (la carpeta raíz).

Ahora vamos a crear la carpeta config con este comando:

mkdir ~/Sites/phpmyadmin/config

Cambia los permisos de la carpeta con este comando:

chmod o+w ~/Sites/phpmyadmin/config

Ejecuta la instalación de phpMyAdmin desde el navegador ve a la dirección: http://localhost/~carlos/phpmyadmin/setup/ (recuerda reemplzar carlos con tu nombre de usuario) o http://localhost/phpmyadmin/setup/

Es necesario crear una nueva conexión de servidor MySQL para localhost, haz clic en New server.

6 - crear servidor en phpMyAdmin

Cambia a la pestaña Authentication y configura el usuario cómo root la contraseña.

7 - configurar phpMyAdmin

Añade el nombre de usuario «root» (tal vez ya estaba rellenado, añade la contraseña que configuraste anteriormente para el usuario root de al instalar MySQL, haz clic en Save y volverás a la pantalla anterior.

8 - guardar la configuración de phpMyAdmin

Asegúrate de hacer clic en Save, esto creará un archivo llamado config.inc.php en la carpeta config dentro de la carpeta de phpmyadmin, ahora tienes que mover este archivo a la raíz de phpmyadmin y después eliminar el directorio config ahora vacío.

Ahora ya puedes acceder a phpMyAdmin desde tu navegador: http://localhost/~carlos/phpmyadmin/ (recuerda reemplzar carlos con tu nombre de usuario) o http://localhost/phpmyadmin/

7. Configurar permisos

Para ejecutar un sitio web sin problemas de permisos, es mejor establecer la raíz Web y su contenido para ser «escribible» por todos, ya que es un desarrollo local, esto no debería ser un problema de seguridad.

Digamos que tienes un sitio en la carpeta Sites en el siguiente lugar ~/Sites/sitio-de-prueba para hacerlo «escribible» ejecuta el siguiente comando:

sudo chmod -R a+w ~/Sites/sitio-de-prueba

Si estás preocupado por la seguridad entonces en vez de la carpeta sea «escribible» por todo el mundo, ajusta el usuario para que sea Apache _www pero cuando se trabaja con archivos deberás autenticarte como administrador ya que «no» eres el propietario, el comando para hacer que sean escribibles por Apache es el siguiente:

sudo chown -R _www ~/Sites/sitio-de-prueba

Esto establecerá el contenido de forma recursiva a ser propiedad del usuario de Apache.

Si tuvieras la página web almacenada en el directorio raíz a nivel del sistema en /Library/WebServer/Documents/sitio-de-prueba entonces tendrías que usar este comando éste:

sudo chown -R _www /Library/WebServer/Documents/sitio-de-prueba

Así que creo que vale la pena la creación de la carpeta raíz a nivel de usuario ya que hay menos problemas de autenticación.


¡Eso es todo! Ahora tienes tu AMP (Apache, MySQL y PHP) nativo que se ejecuta sobre el nuevo sistema OS X Mavericks.

Ahora solamente queda pendiente para otra guía sobre cómo configurar Virtual Hosts en Apache sobre OS X Mavericks y Mountain Lion (aunque también puedes usar una utilidad llamada VirtualHostX que te permite configurar los Virtual Hosts en Apache de manera visual) y no te puedes perder estas otras guías: