Virtual Host – Apache 2 + Ubuntu o Debian

Virtual Host (ingles) es la expresión con la que comúnmente se le conoce al Hosting Virtual (español), consiste en hacer funcionar más de un sitio web en una misma máquina física y con nombres diferentes. En este enlace pueden encontrar mayor documentación al respecto.

Bueno lo primero que se necesita para tener un hosting virtual, es obviamente un servidor web, en este caso yo trabajo con Apache Web Server, cuya instalación en Ubuntu o Debian es muy sencilla, así como también la instalación de los módulos necesarios para que el servidor haga lo que su administrador desee. La documentación oficial de Ubuntu, sobre Apache Web Server, la pueden encontrar aquí, o una simple búsqueda en google nos puede ayudar también.

Instalado el servidor, ya podemos configurar un hosting virtual, a continuación voy a describir una serie de pasos para configurar un hosting virtual en una maquina local, el nombre por defecto de nuestro servidor es localhost (recontra conocido), voy a crear un virtual host con el nombre “sergio”, la manera más sencilla podría ser la siguiente:

Abrir un CLI, o un emulador de terminal como gnome-terminal o cualquier otro.

Dirigirse hacia la carpeta donde están los archivos de configuración de Apache2 y ubicar la carpeta sites-available:

sergio@optimux:~$ cd /etc/apache2/sites-available/

Sacar una copia del archivo default y nombrarla nuevamente con el nombre que deseamos usar en vez de localhost, en este caso renombraré la copia como sergio (se puede usar sudo o la cuenta de root):

sergio@optimux:/etc/apache2/sites-available$ sudo cp default sergio

Abrir para su edición, el archivo renombrado (en este caso sergio) con el editor de texto de preferencia:

sergio@optimux:/etc/apache2/sites-available$ sudo vim sergio

Cambiar las siguientes líneas, agregar las que no se encuentren, dejar el resto de líneas intactas, guardar y cerrar. (Yo he creado una carpeta en /home/sergio con el nombre www):

<VirtualHost *:80>
ServerAdmin webmaster@sergio
ServerName sergio

DocumentRoot /home/sergio/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/sergio/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
…(aqui vienen mas lineas, dejarlas como tal)

Luego se debe llamar al script a2ensite + nombre del host virtual, esta acción permitirá habilitar un host virtual en apache:

sergio@optimux:/etc/apache2/sites-available$ sudo a2ensite sergio

Luego se debe editar el archivo hosts para que cada vez que usemos el nombre del hosting virtual nos redirija hacia su ubicación local correcta:

sergio@optimux:~$ sudo vim /etc/hosts

y agregar las siguientes linea:

#hosting virtual sergio
127.0.0.1    sergio

Por último se debe reiniciar el servicio web de Apache.

sergio@optimux:~$ sudo /etc/init.d/apache2 restart

Listo, ya esta configurado el hosting virtual “sergio”, la forma de acceder es muy sencilla, ahora en vez de escribir en mi navegador web favorito: http://localhost, escribiré http://sergio y me direccionará hacia /home/sergio/www donde puedo ya ubicar mis archivos que estarán disponibles en el sitio web con el nuevo nombre.

Happy hacking 🙂

Actualización:

En Debian Gnu/Linux se debe tener en cuenta una línea en particular en la configuración del virtual host. Esta línea es: (se encuentra a la mitad del archivo aproximádamente)

#RedirectMatch ^/$ /apache2-default/

Lo que indica esta línea es que se redireccionará a una sub-carpeta llamada /apache2-default/, dentro del directorio principal del virtual host, para que esto no genere errores, esta línea podría comentarse con un #, de tal manera que al momento de llamar al virtualhost sergio (por ejemplo) no redireccione a sergio/apache2-default

Anuncios

Publicado por

Sergio Infante

Software Developer

6 thoughts on “Virtual Host – Apache 2 + Ubuntu o Debian”

  1. no se que pasa pero no me da este problema

    Forbidden

    You don’t have permission to access / on this server.
    Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.1 with Suhosin-Patch Server at cegottardi Port 80

    Me gusta

  2. Saludos muy buen post mi amigo solo tengo una duda haber si me la puedes resolver, yo utilizo el servicio de no-ip y saco a internet mi servidor apache, me gustaria saber como acceder al virtual host desde internet utilizando el subdominio de no-ip

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s