martes, 15 de febrero de 2011

Dominios Virtuales (Virtual Host) en Apache2 en Debian/GNU Linux (p.e. UBUNTU)

Cuando vamos a atender varias dominios desde el mismo servidor web que presentarán diferentes páginas webs necesitamos crear HOST VIRTUALES.

Pongamos por ejemplo que tenemos un servidor web con apache2 instalado y queremos publicar 2 páginas webs diferentes, una para www.primersitio.com y otra para http://www.segundositio.com/.

Hemos de decidir donde vamos a tener alojados los archivos del sitio web que vamos a servir para cada uno de los sitios (dominios). En nuestro caso vamos a alojarlos dentro del directorio /home/www/, y para esto creamos un directorio para cada uno de los sitios.

Creación de los directorios necesarios para las dos páginas

sudo mkdir /home/www
sudo mkdir /home/www/www.primersitio.com

sudo mkdir /home/www/www.segundositio.com

Apache guarda los fichero de configuración de cada SITIO VIRTUAL en el directorio /etc/apache2/sites-available/. Dentro de este directorio hay un archivo de configuración llamado default que pertenece al sitio web por defecto, el genérico y que si lo abrimos y vemos en su interior, veremos que está configurado para /var/www/


Ahora copiamos el fichero de configuarción default para adaptarlo a nuestros sitios de la siguiente manera:


sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.primersitio.com
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.segundositio.com

Editamos el archivo de configuración de cada sitio para adaptarlo a sus necesidades.

sudo vi /etc/apache2/sites-available/www.primersitio.com


1. Configuramos el ServerAdmin:

ServerAdmin hostmaster@primersitio.com


2. Configuramos el ServerName:


ServerName www.primersitio.com

3. Si queremos que el dominio primersitio.com (sin el www) también acceda a los contenidos configuramos el ServerAlias


ServerAlias primersitio.com

4. Cambiamos todas las repeticiones de /var/www por /home/www/. El archivo quedaría:

<VirtualHost *:80>
        ServerAdmin hostmaster@primersitio.com
        ServerName www.primersitio.com
        ServerAlias primersitio.com


        DocumentRoot /home/www/www.primersitio.com
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/www/www.primersitio.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>


        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>


        ErrorLog ${APACHE_LOG_DIR}/error.log


        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn


        CustomLog ${APACHE_LOG_DIR}/access.log combined


    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>


</VirtualHost>

Para el fichero de configuración www.segundositio.com hacemos lo mismo que lo que hemos hecho para www.primersitio.com

A continuación desabilitamos el sitio default

sudo a2dissite default
sudo a2dissite default-ssl

Ahora tenemos que habilitar en apache nuestros dos nuevos sitios viturales:

sudo a2ensite www.primersitio.com
sudo a2ensite www.segundositio.com

Por último tenemos que recargar los ficheros de configuración de apache de la siguiente manera:

sudo /etc/init.d/apache2 reload

Si queremos creamos los fichero index.html para que tener una página inicial hasta que pongamos los fichero de cada sitio.

sudo vi /home/www/www.primersitio.com/index.html

y pegamos dentro el siguiente contenido:

<html>
<head>
<title>Primer Sitio</title>
<body>
<center>PRIMIER SITIO</center>

</body>
</html>


Hacemos lo mismo para el dominio www.segundositio.com.

Y ya está. Deberíamos poder acceder poniendo los dominios en el navegador a su correspondiente site virtual.

No hay comentarios:

Publicar un comentario