Configurar XAMPP en Mac

Es bastante simple, pero en este post voy a dar algunas indicaciones adicionales cuando el DOCUMENT ROOT está situado fuera del directorio por defecto y queremos además dominios personalizados.

Instalar XAMPP

Bien, la instalación es bien simple, descargar la aplicación correspondiente desde su sitio oficial y ejecutarla siguiendo el asistente de instalación.

Se puede elegir tanto la versión de PHP como la de MySQL para que se adecúen a tus necesidades de entorno de desarrollo.

Empezando a configurar XAMPP

Arrancamos la aplicación y ejecutamos los servicios MySQL y Apache desde su panel correspondiente:

Configurar /etc/hosts

Lo primero que suelo hacer es editar el archivo /etc/hosts e introducir el dominio local que voy a configurar. En mi caso dev.ejemplo.

Configurar VHOSTS

En este caso, tenemos que añadir el VHOST correspondiente. Se hace editando el archivo /Applications/XAMPP/etc/extra/httpd-vhosts.conf

Dentro añadiremos las líneas correspondientes a nuestro dominio de desarrollo:

<VirtualHost *:80>
  ServerName dev.ejemplo
  DocumentRoot "/Users/USUARIO/Sites/ejemplo"
  ErrorLog "/var/log/ejemplo-error.log"
  CustomLog "/var/log/ejemplo-access.log" common
</VirtualHost>
<VirtualHost *:443>
   DocumentRoot "/Users/USUARIO/Sites/ejemplo"
   ServerName dev.ejemplo
   SSLEngine on
   SSLCertificateFile "/Applications/XAMPP/etc/ssl.crt/server.crt"
   SSLCertificateKeyFile "/Applications/XAMPP/etc/ssl.key/server.key"
</VirtualHost>

El primer bloque de VHOST es para indicarle el protocolo por defecto http y el segundo usando una clave de firma SSL falsa para simular el https en nuestro local (dará error por no estar firmada por ninguna entidad fiable).

Configurar HTTPD.CONF

Aquí hay tres puntos necesarios para configurar:

  • Cambiar usuario y grupo de Apache
  • Añadir directorio personalizado como accesible
  • Descomentar el fichero de configuración de los vhosts.

Cambiar usuario y grupo de Apache

Editamos el fichero /Applications/XAMPP/etc/httpd.conf y buscamos las líneas:

User daemon
Group daemon

Y las cambiamos por el usuario y grupo por defecto de vuestro equipo

User MIUSUARIO_DE_EQUIPO
Group MIGRUPO_DE_EQUIPO

Añadir directorio personalizado como accesible

Seguimos en el mismo archivo httpd.conf y buscamos las siguientes líneas:

<Directory />
    AllowOverride none
    Require all denied
</Directory>

Y añadimos justo debajo nuestro directorio raíz donde alojaremos todos nuestros proyectos:

DocumentRoot "/Users/MIUSUARIO/Sites"
<Directory "/Users/MIUSUARIO/Sites">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Require all granted
</Directory>

Descomentar el fichero de configuración de los vhosts

Dentro de httpd.conf, tenemos que ir a la siguiente línea:

# Virtual hosts
#Include etc/extra/httpd-vhosts.conf

Y retiraremos el # de la línea que empieza por “Include”.

Guardamos todos los cambios hechos en estos tres últimos pasos.

Cambios de usuarios y permisos en un par de directorios

Para que funcione todo correctamente, es decir, además de tu dominio personalizado para desarrollo, necesitaremos también el PHPMyAdmin que viene con XAMPP así como el correcto funcionamiento de MySQL

Para ello, vamos a cambiar los permisos de dos carpetas:

sudo chown -R MIUSUARIO:MIGRUPO /Applications/XAMPP/xamppfiles/temp
sudo chown -R mysql:MIGRUPO /Applications/XAMPP/xamppfiles/temp/mysql

Con estos cambios no habrá problemas con PHPMyAdmin y sobre todo, para instalar WP en nuestro dominio personalizado.

Realizados estos dos últimos cambios, reiniciamos Apache desde el panel de XAMPP.

NOTA: a veces reiniciar el servicio APACHE desde XAMPP es un poco engañoso. Me he encontrado veces que parecía que se reiniciaba pero no lo hacía. La manera más fiable es haciendo STOP y luego START. Se tiene que ver cómo se para el servicio y luego arranca correctamente. Si no lo hace, consultar el log del panel de XAMPP.

NOTA 2: si nos da error en Chrome, puede que esté cacheando de un error anterior si no lo hemos configurado a la primera de forma correcta. Lo mejor es probar siempre desde incógnito.