Recomiendo cambiar a Docker
Finalmente cambié a usar Docker para el desarrollo local en macOS. Aunque el siguiente tutorial funciona para macOS Catalina, tiene limitaciones. 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 Mojave, lee mi post sobre Actualización de Apache, PHP y MySQL para macOS Catalina.
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.
macOS se ejecuta sobre UNIX. La mayoría del software UNIX se instala fácilmente en macOS. Además, Apache y PHP vienen preinstalados con macOS. Así que para crear un servidor web local, todo lo que necesitas hacer es configurar Apache e instalar MySQL.
Ejecutar comandos
Primero, abre la aplicación Terminal y cambia al usuario root
para que puedas 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 como comparación contra futuras versiones de macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.Catalina
Ahora edite la configuración de Apache. Siéntase libre de utilizar 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 Catalina 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 Catalina
Descargue e instale la última DMG de la versión generalmente disponible de MySQL para macOS. MySQL 8 es la última versión. Pero las versiones anteriores están disponibles si usted necesita para apoyar las aplicaciones anteriores.
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 para 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 varios 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.