Está en la página 1de 4

Creando Virtual Host de Apache usando Linux

Hasta hoy creo que voy a escribir algo til, pero pues y saben que mi tiempo es poco y hay que aprovecharlo al mximo.
Bueno la idea de este post es platicarles sobre cmo se pueden crear los famosos virtualhosts. Pero antes de empezar
entermonos bien que es un virtualhost.

Con los virtualhosts podremos tener varios dominios apuntando a una misma pc. Dentro de cada virtualhost podremos
definir las condiciones para cada dominio que est representando.

Es como si tuviramos varios dominios dentro de nuestro servidor o sea 127.0.0.1.

Es decir que aparte de usar http://localhost, podramos usar http://localweb, http://proyecto, http://www.beta.com o el
nombre que ms nos guste, para ello lo primero que necesitamos es tener instalado apache2 (la ltima versin) y
funcionando.

Ahora veamos cmo crear y usar los virtualhost (Es necesario tener permisos de root para algunos cambios)

Entraremos a nuestra consola y nos moveremos a cd /etc/apache2/sites-available/

ajaxman@debianJS:~$ su
Contrasea:
debianJS:/home/ajaxman# cd /etc/apache2/sites-available/
debianJS:/etc/apache2/sites-available#

Una vez ah veremos que hay un archivo llamado default (en mi caso hay dos el otro se llama default-ssl es digamos que la
plantilla de los sitio con ssl)

debianJS:/etc/apache2/sites-available# ls -la
total 24
drwxr-xr-x 2 root root 4096 abr 14 16:37 .
drwxr-xr-x 7 root root 4096 nov 6 16:46 ..
-rw-rr 1 root root 1428 nov 6 17:44 default
-rw-rr 1 root root 7366 oct 1 2008 default-ssl

El archivo default es el que contiene la informacin que usaremos en los virtualHost por lo cual simplemente copiaremos
todo el archivo en uno nuevo eso lo hacemos mediante el comando cat.

debianJS:/etc/apache2/sites-available# cat default> website

Ahora nuestro ls se ver as

debianJS:/etc/apache2/sites-available# ls -la
total 24
drwxr-xr-x 2 root root 4096 abr 14 16:37 .
drwxr-xr-x 7 root root 4096 nov 6 16:46 ..
-rw-rr 1 root root 1428 nov 6 17:44 default
-rw-rr 1 root root 7366 oct 1 2008 default-ssl
-rw-rr 1 root root 1480 abr 14 16:35 website

Ahora lo abrimos y lo editamos con el Vi y lo nico que modificaremos ser lo siguiente.

debianJS:/etc/apache2/sites-available# vim website

< VirtualHost *:80 >
ServerAdmin webmaster@localhost

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


.
< VirtualHost >

Por esto

< VirtualHost *:80 >
ServerAdmin webmaster@ajaxman.net
ServerName prog
ServerAlias www.website.net

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


.
< VirtualHost >

Nota: Tiene espacios intencionales para evitar que wordpress lo tome como si fueran tags HTML

Lo que cambiamos fue

Agregamos ServerName, que es donde estar el nombre de nuestro servidor en este caso se llama prog
Le agregamos un ServerAlias, que es como otro nombre para acceder a este VirtualHost, en este caso es www.website.net.
Y le modificamos el DocumentRoot, el cual sera la carpeta del sitio que queremos Virtualizar

Los guardamos con [Esc]:wq

Ahora lo agregamos a apache

debianJS:/etc/apache2/sites-available# a2ensite website

Y apache nos dir que lo agrego con xito, Ojo: para evitar que Apache nos de errores, es necesario que la carpeta que el
indicamos en DocumentRoot exista, si no, no nos va a funcionar.

a2ensite, lo nico que hace es un enlace simblico dentro de la carpeta /etc/apache2/sites-enabled a algunos de los sitios
que estn en la otra carpeta /etc/apache2/sites-available , es decir en sites-available estn los sitios disponibles, y en sites-
enabled estn los que podemos usar.


debianJS:/etc/apache2/sites-enabled# ls -la
total 8
drwxr-xr-x 2 root root 4096 abr 14 16:26 .
drwxr-xr-x 7 root root 4096 nov 6 16:46 ..
lrwxrwxrwx 1 root root 26 nov 6 16:13 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 23 abr 14 16:26 website -> ../sites-available/website

Ahora modificamos nuestro fichero hosts, hay que tener cuidado porque Apache en mi debian tiene dos un host y otro que
se llama hosts, el que vamos a modificar es hosts (con ese al final).

debianJS:/etc/apache2/sites-enabled# vim /etc/hosts

Nos aparecer as

127.0.0.1 localhost
.
.


Lo nico que debemos hacer es agregar nuestro nuevo sitio de acuerdo al alias que le pusimos o bien el servername (se ve
ms chido con Alias) y quedara as

127.0.0.1 localhost
127.0.0.1 www.website.net
..
..
..

Guardamos nuestro archivo, y con esto le decimos a nuestro Linux, que cuando teeclemos www.website.net lo busque en
nuestra misma pc y no afuera.

Ahora solo recargamos apache

debianJS:/etc/apache2/sites-enabled# /etc/init.d/apache2 reload

Y listo

Ahora abrimos nuestro Firefox(Navegador) (acaso hay otro?) y tecleamos www.website.net y nos debe de desplegar la
informacin de la carpeta /home/www/prog ya se aun index.php index.html o un listado, claro as est permitido en nuestra
configuracin default(recuerden que de ah sacamos toda la configuracin).

En resumen mis comandos fueron

ajaxman@debianJS:~$ su
Contrasea:
debianJS:/home/ajaxman# cd /etc/apache2/sites-available/
debianJS:/etc/apache2/sites-available# ls -la
total 24
drwxr-xr-x 2 root root 4096 abr 14 16:37 .
drwxr-xr-x 7 root root 4096 nov 6 16:46 ..
-rw-rr 1 root root 1428 nov 6 17:44 default
-rw-rr 1 root root 7366 oct 1 2008 default-ssl
debianJS:/etc/apache2/sites-available# cat default> website
debianJS:/etc/apache2/sites-available# vim website
debianJS:/etc/apache2/sites-available# vim default
debianJS:/etc/apache2/sites-available# a2ensite website
Site prog already enabled
debianJS:/etc/apache2/sites-available# cd ..
debianJS:/etc/apache2# ls
apache2.conf conf.d envvars httpd.conf mods-available mods-enabled ports.conf sites-available sites-enabled
debianJS:/etc/apache2# cd sites-enabled/
debianJS:/etc/apache2/sites-enabled# ls -la
total 8
drwxr-xr-x 2 root root 4096 abr 14 16:26 .
drwxr-xr-x 7 root root 4096 nov 6 16:46 ..
lrwxrwxrwx 1 root root 26 nov 6 16:13 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 23 abr 14 16:26 website -> ../sites-available/website
debianJS:/etc/apache2/sites-enabled# vim /etc/hosts
debianJS:/etc/apache2/sites-enabled# /etc/init.d/apache2 reload