domingo, 18 de mayo de 2008

Virtual Host en Apache2 (Ubuntu)

Bien pues ya sabeis que hay mil y una versiones de apache y sus fichero de configuración. En red hat o CentOS se llaman httpd y el fichero de configuración httpd.conf y ahi se mete todo a pelo. En ubuntu/debian se llama apache2 y dentro de /etc/apache2 tenemos un conjunto de carpetas y ficheros para configurar el servidor esto lo hace más elegante que en los red hat, pero también es más entretenido de aprender.

Pues nada yo estaba muy acostumbrado a red hat pero cuando cogi un ubuntu dije ostias esto como es, así que aqui os dejo lo que teneis que hacer para crear un virtual host de apache en una ubuntu/debian.

Lo que sigue es una breve nota técnica que me sirva (y a otros) como recordatorio para la próxima vez , dado que hoy he perdido un rato con la configuración de un host virtual en Ubuntu (en Fedora lo tenía todo ya hecho, y sólo era copiar y pegar :-)

En /etc/apache2 disponemos de varios subdirectorios, dos de ellos importantes para nuestra tarea. El primero sites-available y el segundo sites-enabled.

Los ficheros de configuración de los hostings virtuales se configuran en sites-available. El segundo subdirectorio sólo contiene enlaces a aquellos virtulhost que queremos activar.

Queremos crear un virtualhost de nombre "jorges" Es decir, cuando ponga en mi navegador http://jorges me debe de llevar a la página principal de ese host. Si pongo http://localhost me llevará al virtualhost por defecto (distinto del de jorges).

Lo primero, creo una nueva entrada en /etc/hosts (mantengo lo que había y añado lo siguiente):

127.0.0.1 jorges

Copio los archivos del nuevo site en /var/www/jorges.

Comienza el procedimiento de configuración del nuevo virtualhost en Apache2:

$ cd /etc/apache2/sites-available

Edito las dos primeras líneas del fichero default para que queden así:

NameVirtualHost *:80

$ cp default jorges

Edito hackit para que las primeras líneas queden así:


ServerAdmin webmaster@jorges

ServerName jorges

DocumentRoot /var/www/jorges


Options FollowSymLinks
AllowOverride None


$ cd /etc/apache2

El siguiente comando, a2ensite (available2enablesite) crea un enlace en sites-enable al site que le indiquemos (es decir, activa el virtualhost que acabamos de crear)

# a2ensite jorges

Comprobamos:

$ ls -al sites-enabled/

Recargamos apache2:

#/etc/init.d/apache2 force-reload
Listo!



Fuente: diariolinux

12 comentarios:

juan dijo...

anda, muy interesante por fin un tutorial directo...

y qué sucede si deseo por ejemplo agregar un subdominio a jorge? (blog.jorge -o- calif.jorge).. he intentado agregando un redirect y no funciona, alguna pista?

Jorge Cantón Ferrero dijo...

Hola Juan, muy buena pregunta, realmente los virtual host han sido creados precisamente para esto para poder responder a más de un dominio desde un sólo servidor. Para crear por ejemplo el subdominio blog.jorge deberías definir un nuevo virtual host donde el ServerName fuera blog.jorge, es decir necesitas un virtual host por cada subdominio. Además debes asegurarte que en el servidor de DNS el nombre del subdominio se resuelve contra tu servidor, esto lo puedes comprobar con el comando 'nslookup' tanto en windows como en linux.

Espero que esto te ayude :)

Malabareand dijo...
Este comentario ha sido eliminado por el autor.
Malabareand dijo...
Este comentario ha sido eliminado por el autor.
Jorge Cantón Ferrero dijo...

Hola Malabareand, gracias por visitar mi blog, y supongo que has eliminado la pregunta porque has conseguido solucionarlo sólo. Por el correo que me ha llegado tu problema parecía estar en que repetías el NameVirtualHost en distintos dominios, pero supongo que ya lo sabes, o sería otra cosa. Un saludo

Karlos dijo...

Hola jorge! gracias =) ya domino a la perfección los virtual-host Excelente tutorial ;)

Jorge Cantón Ferrero dijo...

Gracias por visitar mi blog Karlos

Snowdogs dijo...

Buenas Pana como estas? Pana necesito de tu ayuda urgente estoy trabajando con joomla pero estoy aprendiendo y pues me gustaria aprender mas sobre la seguridad para que no me vallan a tumbar una web que realice. sera que me puedes dar un correo donde podamos hablar tranquilamente? te lo agradesecia mucho pana.. cuidate y que estes bien.

Snowdogs dijo...

De todas maneras mi correo es: webcore2406@hotmail.com si puedes me agregas al msn pana de verdad necesito Urgente de tu ayuda. Que tenga feliz dia.

Jorge Cantón Ferrero dijo...

Hola Snowdogs, perdona por no haberte contestado pero mi incultura me hacía no conocer la palabra "Pana", no sabía si te referías a alguien llamado así o que. Total posteame aquí tu duda e intentaré resolverla.

Un saludo pana

david dijo...

Joder, menuda fusilada de este artículo, por lo menos podias citar las fuentes...

http://diariolinux.com/2007/05/29/hosts-virtuales-en-apache-2-ubuntu/

Jorge Cantón Ferrero dijo...

Perfecto David estoy de acuerdo ;), si no la puse sería porque la perdí
Un saludo