Chatear en RedIrc

sábado, 16 de abril de 2016

VirtualHost, subdominios en Apache desde Linux

Un subdominio es un subgrupo o subclasificación de un dominio principal, este es definido con fines administrativos u organizativos, se podría considerarse como un dominio de segundo nivel, su estructura puede ser subdominio.dominio.com.

Suponiendo que disponemos del dominio test.com con la IP 1.2.3.4 y tenemos corriendo un servidor Apache vamos a definir el subdominio blog.test.com. Lo primero que necesitamos hacer es añadir una entrada del tipo A a los registros DNS quedando así:
blog    IN    A    1.2.3.4
Aunque podríamos definir otra IP si disponemos de varias. Debemos incrementar el Serial para generar una nueva modificación al DNS maestro. [update headline="Nota"]Los registros por defecto cuelga sobre el directorio var en la ruta /var/named/run-root/ aunque puede definirse otra desde el archivo /etc/default/bind9[/update]
Actualizamos los registros:
rndc reload
La propagación del DNS puede tardar unos minutos, podemos comprobar si resuelve localmente a la IP definida en el DNS:
host blog.test.com
Ahora vamos a definir el subdominio en Apache, para ello usaremos la directiva VirtualHost que contiene las directivas que se aplican solo a un nombre de host específico o dirección IP. Podemos crearlo directamente en el archivo apache2.conf o crear un archivo separado por organización y incluirlo en apache2.conf usando la directiva include, de cualquier manera el contenido puede ser algo así:
<VirtualHost *:80>
    ServerAdmin webmaster@test.com
    ServerName blog.test.com
    DocumentRoot /var/www/blog/wordpress

    <Directory /var/www/blog/wordpress/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/blog/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/blog/access.log combined
</VirtualHost>
[update headline="Varias IPs"]Si dispones de varias IPs puedes sustituir * por una IP, solo asegurarse que esta la definamos en el DNS[/update]
Doy por echo de que vuestro servidor web escucha en el puerto 80, de no ser así sustituir *:80 por el puerto que corresponda. El funcionamiento es muy fácil, al cargar el subdominio se inicia el contenido que tengamos definido en la directiva DocumentRoot.

Como vemos es muy simple, definimos un correo electrónico usando ServerAdmin, el parámetro ServerName define el nombre del host propiamente dicho, DocumentRoot define la ruta absoluta donde están los ficheros HTML y el resto de opciones definen ciertas opciones por defecto.

Por último solo nos queda instalar el blog en la ruta /var/www/blog definida anteriormente y finalizamos actualizando el servidor Apache para que se carguen los nuevos cambios:
mkdir /var/www/blog
wget https://es.wordpress.org/wordpress-4.5-es_ES.tar.gz
tar xvzf wordpress-4.5-es_ES.tar.gz -C /var/www/blog
chown -R www-data:www-data /var/www/blog/
service apache2 restart
Ahora solo nos queda comprobar desde nuestro navegador usando si funciona cargando http://blog.test.com.

1 comentario:

  1. Buen tutorial, a veces uno se pierde en tanto código por lo que es bueno armar la base bien desde el principio. Dejo algo más de información sobre las Ventajas de Virtual Host ,es muy bueno.

    ResponderEliminar