Configurando ambiente de desarrollo para Mac sin MAMP
Este post fue publicado originalmente el 21 de Septiembre de 2014, hace ya casi 4 años, mucho ha cambiado desde ese momento, así que ha sido actualizado para reflejar esos cambios. Trataré de actualizarlo regularmente. Última actualización 14 de Mayo de 2018
Hace unas semanas decidí formatear mi computadora (iMac) dado que ya estaba muy cargada y se estaba estaba colocando muy lenta. Cuando me la compré nunca antes había tenido una Mac así que no estaba configurada de la mejor manera posible, una de las primeras cosas que hice fue instalar MAMP, la ventaja de MAMP es que no tienes que hacer nada de configuración, en un solo paquete trae PHP, MySQL así como PhpMyAdmin para poder administrar las bases de datos y te tiene el ambiente de desarrollo por separado, deja las herramientas del sistema sin tocar.
Pero igual para configurar el ambiente como a mi me gusta, con hosts virtuales tenía que configurar archivos de sistema, además de esta manera puedo tener siempre mi ambiente de desarrollo activo sin depender de una aplicación. Pero creo que la razón por la cual decidí hacerlo es que muchas herramientas funcionan más fácilmente, yo uso mucho wp-cli
para WordPress y configurarlo con MAMP es muy laborioso muchas veces, homebrew también me dio problema una vez, porque siempre buscaban las copias del sistema entonces tenía que vivir cambiando el PATH de mis directorios. Así que cuando formatee decidí probar y usar los de sistema, aquí la explicación de como lo hice.
Mac trae por defecto instalado PHP
y aunque ya no trae MySQL
instalado es súper fácil instalarlo.
Aclaratoria
Si no te sientes cómodo modificando archivos de sistema y apenas estás aprendiendo te recomiendo usar MAMP.
Preparación
Antes de comenzar vamos a necesitar un par de aplicaciones, la primera es un editor de texto, yo subo para programar Sublime Text que es un excelente editor de texto y funciona a la perfección para lo que vamos a necesitar, sin embargo se puede usar VIM o nano o realmente cualquier otro programa de edición de texto que se use para programar. También vamos a necesitar la Terminal, recomiendo no usar la terminal.app que trae el sistema, en lugar instalar iterm2 que es mucho más completo.
PHP
Vamos a comenzar con PHP. Como dije arriba, ya una versión de PHP viene instalada en el sistema por defecto. Podemos revisar que efectivamente esté instalada corriendo el siguiente código para ver donde se encuentra
which php
Y para confirmar que versión tenemos instalada usamos
php --version
Casi siempre la versión que viene instalada es una versión más antigua a la actual, pero funciona igual perfectamente. Después copiamos el archivo php.ini que trae por defecto el sistema.
sudo cp /etc/php.ini.default /etc/php.ini
Aquí puedes configurar cosas de PHP, como por ejemplo, aumentar la memoria que trae por defecto.
Apache
Apache también viene instalado con el sistema, la raíz de nuestro servidor local está por defecto en la siguiente dirección:
/Library/WebServer/
La raíz se puede modificar si quieres, más adelante también explico como se hace en caso de que quieras hacerlo. Los tres comandos de Apache que necesitas saber son
Iniciar Apache
sudo apachectl start
Reiniciar Apache
sudo apachectl restart
Detener apache
sudo apachectl stop
Si iniciamos apache y entramos desde nuestro navegador a http://localhost
deberíamos ver It works! o Funciona dependiendo del idioma del sistema.
Debemos hacer algunas configuraciones extras de Apache, debemos editar este archivo, yo uso Sublime para editar estos archivos
/private/etc/apache2/httpd.conf
Y ahí buscamos la linea
LoadModule php7_module libexec/apache2/libphp7.so
Y le quitamos el # que tiene delante para descomentarla. Con esto ya tenemos PHP corriendo.
Cambiando la ruta de nuestra carpeta base
Como mencioné anteriormente, la carpeta por defecto de apache es /Library/WebServer/
pero a mi no me gusta usar esa carpeta, prefiero tener una carpeta dentro de mi ~/
de usuario, casi siempre la llamo Code
. Vamos a cambiar esta carpeta y modificar un par de cosas para que funcione sin problema.
En nuestro archivo httpd.conf
que modificamos anteriormente, buscamos DocumentRoot
y vamos a encontrar esto
DocumentRoot "/Library/WebServer"
<Directory "/Library/WebServer">
....
</Directory>
Aquí debemos modificar esas dos lineas para actualizar nuestra ruta
DocumentRoot "/NUEVARUTA"
<Directory "/NUEVARUTA">
Después debemos modificar el usuario y grupo por defecto que usamos para correr httpd, es posible que sean diferentes en tu sistema pero yo veo lo siguiente.
User _www
Group _www
Si dejamos esto tendremos problema de permisos al tratar de correr nuestro código, pueden crear un usuario y un grupo dedicado pero yo coloco mi usuario y el grupo al que pertenezco staff
Así que quedan así
User saulsolorzano
Group staff
Una vez que hacemos esto debemos reiniciar nuestro servicio corriendo
sudo apachectl restart
Homebrew
Homebrew es una herramienta excelente que nos ayuda a instalar muchas cosas con unos simples comandos, como lo dice la misma página web es El gestor de paquetes para OS X que faltaba
Para instalarlo copia el siguiente código en la terminal
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Esta linea instala homebrew, dependiendo de tu conexión puede tardar un poco , una vez que termine corre Brew Doctor
para verificar que todo esté bien, si es así te dirá
$ brew doctor
Your system is ready to brew.
MySQL
Ahora que ya tenemos homebrew instalar MySQL es tan simple como copiar
brew install mysql
Y empezará a instalar MySQL, una vez que termine verificamos con
mysql --version
Ahora algunos comandos de MySQL que necesitas:
Iniciar MySQL, este es el comando que debes usar cada vez que quieras usar MySQL, sino te dará error.
mysql.server start
Reiniciar MySQL
mysql.server restart
Detener MySQL
mysql.server stop
Como vemos son los mismos que usamos en PHP, así que no hay perdida. Ahora vamos a configurar algunas cosas, MySQL no trae clave por defecto pero es recomendado colocarle una clave. Cambiando CLAVE por la clave que deseas colocar
cd /usr/local/share/mysql
mysqladmin -u root password 'CLAVE'
Por último vamos a mover el archivo mysql.sock dado que algunos programas esperan encontrarlo en /var y no está ahí por defecto, entre ellos wp-cli. Primero creamos la carpeta
sudo mkdir /var/mysql
Y después copiamos el archivo
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Administrar la Base de datos
Usando homebrew se puede instalar PHPMyAdmin para administrar la base de datos, sin embargo recomiendo fuertemente descargar Sequel Pro, es un administrador para Mac de base de datos y es, por mucho, la mejor aplicación para el trabajo. Ademas tiene la habilidad de conectarse a base de datos remotas lo que lo hace una herramienta muy poderosa. Como es el que uso y no tengo instalado PHPMyAdmin no daré las instrucciones.
Conclusión
Eso es todo lo que necesitamos para tener un ambiente de desarrollo local sin la necesidad de instalar MAMP, ya tengo varias semanas usándolo y no he tenido ningún problema, si, es un poco más de trabajo que instalar MAMP pero tampoco es mucho.