Para configurar un subdominio en el servidor web Apache2 tenemos que crear un nuevo registro en la carpeta sites-availables y posteriormente activarlo mediante el comando a2ensite
, como si de un dominio normal se tratara. El mecanismo es exáctamente el mismo que utilizamos para un dominio normal, es decir, asociamos el dominio, en este caso el subdominio, a una carpeta de nuestro servidor.
Utilizaremos como ejemplo el típico subdominio dev
del dominio example.com
(utilizado cuando desarrollamos una web y no queremos que sea pública en el dominio). Para configurarlo, creamos el archivo sub.example.com, que ubicaremos en /etc/apache2/sites-available/
, y lo rellenamos de la siguiente manera:
<VirtualHost *:80> ServerName dev.example.com ServerAdmin mail@example.com DocumentRoot /var/www/folder/htdocs <Directory "/var/www/folder/htdocs"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> # CGI Directory ScriptAlias /cgi-bin/ /var/www/folder/cgi-bin/ <Directory "/var/www/folder/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> # Logfiles ErrorLog /var/www/folder/logs/error.log CustomLog /var/www/folder/logs/access.log combined </VirtualHost>
Tras guardar el nuevo registro, ejecutaremos el comando a2ensite
y reiniciaremos el servidor web, para que apache reconozca el nuevo dominio:
# a2ensite dev.example.com # /etc/init.d/apache2 restart
Lo único que hace a2ensite
es crear una liga blanda, un enlace, en la carpeta /etc/apache2/sites-enabled
hacia el registro que acabamos de crear en sites-available
.
En cuando al servidor DNS del dominio, lo único que tenemos que hacer es dirigir el registro principal @
a la IP del servidor. Fácil.
4 comentarios
por que usas esto
a2ensite sub.example.com
si el dominio se llamaba asi
dev.example.com
Hola hiko,
era un error. El comando correcto es
a2ensite dev.example.com
.Ya lo he cambiado. ¡Gracias por el apunte!
Y si la estructura fuese de subcarpetas example.com/example2/ donde example2 es otro sitio, ¿cómo se configuraría?
Gracias por todo
Hola Geiser,
crear un virtual host en el caso que planteas tiene sentido si quieres asociar un dominio, digamos example.net, a la carpeta
example.com/example2/
. Para ello: