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: