Configurar virtual hosts para XAMPP en Mac OS X

Supongamos que queremos tener en nuestro servidor local 2 virtual hosts que sean accesibles mediante las URL http://web1.com y http://web2.com y cuyo contenido se encontrará respectivamente en:

/Users/usuario/Documents/Webs/web1.com

y

/Users/usuario/Documents/Webs/web2.com

Para ello lo primero es hacer que los nombres web1.com y web2.com apunten a nuestro ordenador. Se podría hacer configurando un servidor DNS pero es más fácil añadir esas entradas en nuestro fichero de hosts. Abrir el fichero /etc/hosts y añadir:

127.0.0.1 web1.com
127.0.0.1 web2.com

Comprobar desde el terminal que haciendo ping a esos nombres se accede a 127.0.0.1:

$ ping web1.com
PING web1.com (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.044 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.068 ms

Descargar XAMPP e instalarlo.

Editar el fichero /Applications/XAMPP/etc/httpd.conf y cambiar los parámetros User y Group a tu nombre de usuario y el grupo staff.

User usuario
Group staff

Descomentar la línea que incluye el fichero de virtual hosts:

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

Editar el fichero Applications/XAMPP/etc/extra/httpd-vhosts.conf y eliminar las 2 entradas de VirtualHost que vienen de ejemplo y añadir las siguientes:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName localhost
    ServerAlias localhost
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
    ErrorLog "logs/localhost-error_log"
    CustomLog "logs/localhost-access_log" common
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName web1.com
    ServerAlias web1.com
    DocumentRoot "/Users/user/Documents/Webs/web1.com"
    DirectoryIndex index.html
    <Directory /Users/user/Documents/Webs/web1.com>
        #IndexOptions +FancyIndexing NameWidth=*
        #Options Includes FollowSymLinks Indexes
        #AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog "logs/web1.com-error_log"
    CustomLog "logs/web1.com-access_log" common
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName web2.com
    ServerAlias web2.com
    DocumentRoot "/Users/user/Documents/Webs/web2.com"
    DirectoryIndex index.html
    <Directory /Users/user/Documents/Webs/web2.com>
        #IndexOptions +FancyIndexing NameWidth=*
        #Options Includes FollowSymLinks Indexes
        #AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog "logs/web2.com-error_log"
    CustomLog "logs/web2.com-access_log" common
</VirtualHost>

Como se puede observar se ha tenido que añadir también la entrada para localhost para poder seguir accediendo al contenido raiz de XAMPP desde el que podemos comprobar el estado del servidor o acceder a phpMyAdmin.

Meter dentro de las carpetas de nuestras 2 webs un index.html con algún contenido, arrancar XAMPP y comprobar que al acceder a sus URLs se muestra el contenido de dichos index.html. Se puede poner en DirectoryIndex una lista de ficheros y XAMPP los intentará cargar en el orden que están escritos. Por ejemplo para tratar de cargar primero index.php y luego index.html:

DirectoryIndex index.php index.html

Si se quiere poder acceder al contenido de las carpetas de nuestras webs, descomentar las 3 primeras líneas que aparecen dentro del tag <Directory>...</Directory>. De lo contrario obtendríamos un error 403.

You might also like

Script de instalación de Apache 2 + MySQL 5 + PHP 5.3 + phpMyAdmin 3.5.4 para Mac OS X usando MacPorts
Basándome en las instrucciones de Gilles Fabio he creado un completo script para instalar Apache 2,...

Apache 2 + MySQL 5 + PHP 5.3 + phpMyAdmin 3.5.4 installation script for Mac OS X using MacPorts
Based on the instructions provided by Gilles Fabio I've created a complete installation script to install...

Instalar una aplicación Symfony2 usando Composer
Antes de instalar un proyecto Symfony2 tienes que cumplir los requisitos mínimos en tu servidor. Yo...

Proteger con contraseña una Location, LocationMatch o VirtualHost en Apache (XAMPP y Mac OS X)
Proteger una Location, LocationMatch o VirtualHost en Apache es muy similar a proteger una carpeta tal...

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.