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:
- Habilitar Apache
- Configurar el DocumentRoot en Apache
- Configurar los .htaccess para que permitan sobreescribir
- Habilitar PHP
- Instalar y configurar MySQL
- Instalar phpMyAdmin
- 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!.
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.conf
donde carlos es el nombre de usuario de tu cuenta en OS X, en mi caso carlos, a continuación te digo como crearlo.
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.conf
crealo, 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
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».
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.
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 phpmyadmin
luego 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.
Cambia a la pestaña Authentication y configura el usuario cómo root la contraseña.
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.
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: