[Tutorial] Creando Virtual Host de Apache usando Linux

Hasta hoy creo que voy a escribir algo util, pero pues y saben que mi tiempo es poco y hay que aprovecharlo al máximo.

Bueno la idea de este post es platicarles sobre como se pueden crear los famosos virtualhosts.Pero antes de empezar enterémonos bien que es un virtualhost.

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

Es como si tuviéramos varios dominios dentro de nuestro servidor osea 127.0.0.1.

Es decir que aparte de usar http://localhost, podríamos usar http://localweb, http://proyecto, http://www.beta.com o el nombre que mas nos guste, para ello lo primero que necesitamos es tener instalado apache2 (la ultima versión) y funcionando.

Ahora veamos como 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
Contraseña:
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-r–r– 1 root root 1428 nov  6 17:44 default
-rw-r–r– 1 root root 7366 oct  1  2008 default-ssl

El archivo default es el que contiene la información 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 vera asi

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-r–r– 1 root root 1428 nov  6 17:44 default
-rw-r–r– 1 root root 7366 oct  1  2008 default-ssl
-rw-r–r– 1 root root 1480 abr 14 16:35 website

Ahora lo abrimos y lo editamos con el Vi y lo unico que modificaremos sera 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 Server Name, 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 eswww.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 dira 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 simbólico dentro de la carpeta /etc/apache2/sites-enabled a algunos de los sitios que están en la otra carpeta /etc/apache2/sites-available , es decir  en sites-available están los sitios disponibles, y en sites-enabled están  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 por que 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 aparecera asi

127.0.0.1       localhost
…….
……….
…………

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

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 informacion de la carpeta /home/www/prog ya se aun index.php index.html o un listado, claro esi esta permitido en nuestra configuracion default(recuerden que de ahi sacamos toda la configuración).

En resumen mis comandos fueron
——————
ajaxman@debianJS:~$ su
Contraseña:
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-r–r– 1 root root 1428 nov  6 17:44 default
-rw-r–r– 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

——————————————————

Creo que ya quedo, espero que les sea util y bueno ya mejore mis posts o no?

Related Photos

No related photos.

Leave a Comment

Your email address will not be published. Required fields are marked *