Recomiendo cambiar a Docker
Finalmente cambié a usar Docker para el desarrollo local en macOS. Aunque el siguiente tutorial funciona para macOS Mojave, no lo hará para futuras versiones de macOS. Recomiendo seguir mi último tutorial sobre la instalación de Apache, MySQL y PHP en macOS usando Docker.
Nota: Este post es para instalaciones nuevas. Si has instalado Apache, PHP y MySQL para Mac OS Sierra, lee mi post sobre Actualización de Apache, PHP y MySQL para macOS Mojave.
Conozco el software de servidor web disponible para macOS, especialmente MAMP, así como los gestores de paquetes como brew
. Estos te hacen empezar rápidamente. Pero renuncian a la experiencia de aprendizaje y, como la mayoría de los desarrolladores informan, puede llegar a ser difícil de manejar.
La cosa es que macOS se ejecuta sobre UNIX. Así que la mayoría del software UNIX se instala fácilmente en macOS. Además, Apache y PHP vienen preinstalados con macOS. Para crear un servidor web local, todo lo que tienes que hacer es configurar Apache e instalar MySQL.
Ejecutar comandos
Primero, abre la aplicación Terminal y cambia al usuario root
para poder ejecutar los comandos de este post sin problemas de permisos:
sudo su -
Habilitar Apache en macOS
apachectl start
¡Verifica que funciona! accediendo a http://localhost
Habilitar PHP para Apache
Primero, haz una copia de seguridad de la configuración por defecto de Apache. Esto es una buena práctica y sirve de comparación frente a futuras versiones de macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.mojave
Ahora edita la configuración de Apache. Siéntase libre de usar un editor diferente si no está familiarizado con vi.
vi httpd.conf
Descomente la siguiente línea (elimine #
):
LoadModule php7_module libexec/apache2/libphp7.so
Reinicie Apache:
apachectl restart
Puede verificar que PHP está habilitado creando una página phpinfo()
en su DocumentRoot
.
El DocumentRoot
por defecto para macOS Mojave es /Library/WebServer/Documents
. Puede verificar esto desde su configuración de Apache.
grep DocumentRoot httpd.conf
Ahora cree la página phpinfo()
en su DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Verifique PHP accediendo a http://localhost/phpinfo.php
Instale MySQL en macOS Mojave
Descargue e instale la última DMG de la versión generalmente disponible de MySQL para macOS. Aunque MySQL 8 es la última versión, muchos de mis proyectos siguen utilizando MySQL 5.7. Así que todavía prefiero instalar la versión anterior.
Cuando la instalación se completa le proporcionará una contraseña temporal. Copie esta contraseña antes de cerrar el instalador. La usará de nuevo en unos pocos pasos.
El README sugiere crear alias para mysql
y mysqladmin
. Sin embargo hay otros comandos que son útiles como mysqldump
. En su lugar, puede actualizar su ruta para incluir /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Nota: Tendrá que abrir una nueva ventana de Terminal o ejecutar el comando anterior para que su ruta se actualice.
Por último, debe ejecutar mysql_secure_installation
. Aunque esto no es necesario, es una buena práctica para asegurar su base de datos. Aquí es también donde puede cambiar esa desagradable contraseña temporal a algo más manejable para el desarrollo local.
Conecte PHP y MySQL
Necesita asegurarse de que PHP y MySQL puedan comunicarse entre sí. Hay varias opciones para hacerlo. Me gusta la siguiente ya que no requiere cambiar mucha configuración:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Configuración adicional (opcional)
La configuración por defecto de Apache 2.4 en macOS parecía bastante escasa. Por ejemplo, módulos comunes como mod_rewrite
estaban deshabilitados. Puede considerar habilitar esto ahora para evitar olvidar que están deshabilitados en el futuro.
Edité mi configuración de Apache:
vi /etc/apache2/httpd.conf
Descomenté las siguientes líneas (eliminar #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Si desarrolla múltiples proyectos y desea que cada uno tenga una url única, puede configurar Apache VirtualHosts para macOS.
Si quieres instalar PHPMyAdmin, vuelve a mi post original sobre la instalación de Apache, PHP y MySQL en macOS.
¿Te ha parecido interesante? Continuemos la conversación en Twitter.