may 29 2007

Hosts Virtuales en Apache 2 (Ubuntu)

Published by at 1:35 pm under Apache,SysAdmin

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 hackit. Es decir, cuando ponga en mi navegador http://hackit 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 hackit).

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

127.0.0.1 hackit

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

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
<VirtualHost *:80>
$ cp default hackit

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

<VirtualHost *:80>
ServerAdmin webmaster@hackit

ServerName hackit

DocumentRoot /var/www/hackit
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/hackit>
$ 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 hackit

Comprobamos:

$ ls -al sites-enabled/

Recargamos apache2:

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

40 responses so far

40 Responses to “Hosts Virtuales en Apache 2 (Ubuntu)”

  1. adminon 29 may 2007 at 1:42 pm

    Un detalle posterior. La aplicación que he instalado usa latin1 como charset y Apache está configurado para servir UTF-8 por defecto.

    He cambiado el fichero /etc/apache2/sites-available/hackit para que tras ServerName ponga:

    AddDefaultCharset latin1

    Reload del Apache2 y funciona :-)

  2. Claudio Salazaron 29 may 2007 at 5:47 pm

    Muchas gracias, excelente tip.

    Saludos.

  3. caymnon 30 may 2007 at 5:32 am

    “Copio los archivos del nuevo site en /var/ww/hackit.”
    Creo que falta una “w”… que bien tener este howto para no tener que escribir una nota de esas que se terminan perdiendo.

  4. adminon 31 may 2007 at 9:25 am

    >> Copio los archivos del nuevo site en
    >> /var/ww/hackit.”
    > Creo que falta una “w”…

    Arreglado!

    > que bien tener este howto para no tener
    > que escribir una nota de esas que
    > se terminan perdiendo.

    Pues sí :-) Ya es la 3ª vez que vuelvo a este post para recordar cómo se hacía (y eso que lo escribí yo!)

  5. Demianon 29 sep 2007 at 8:46 am

    Felicitaciones, excelente tutorial… No sbes cuanto busqué esta explicación. Ahora jugaré un rato en mis servidores de pruebas. :)
    Gracias!

  6. [...] nota fue tomada de diariolinux.com muchas gracias por la [...]

  7. Takashion 30 oct 2007 at 2:46 pm

    Buenas, segui el tutorial y realmente es excelente, funciono perfecto solo que unicamente en local…
    Ahora lo que quiero es poder terminar de montar mi intranet, hasta ahora funciona perfectamente pero usando la direccion ip de la maquina y no el host virtual. Mi pregunta es como hago para conectar a una de mis aplicaciones desde una maquina conectada a mi red local pero no usando la direccion IP sino el host que cree que le di como nombre “prueba”, ya he intentado colocando http://prueba, en mi maquina funciona asi pero no en las de la red.

  8. adminon 30 oct 2007 at 5:23 pm

    Takashi: para que funcione, dispones de 2 métodos. El mejor y que siempre funcionará independientemente del nº de máquinas que tengas: montar un servidor DNS. Todas las máquinas resolverán el nombre prueba por la dirección IP adecuada siempre que el DNS esté bien configurado. Tal vez configurar un DNS sea demasiado para tu caso, si por ejemplo, en tu red sólo tienes 3 o 4 máquinas. En ese caso, la segunda posibilidad que también funcionará será que en cada una de esas 4 máquinas, edites el fichero : /etc/hosts y pongas una línea como:

    192.168.1.10 prueba

    (asumiendo que prueba está en la máquina con esa IP)

    Es decir, estamos sustituyendo el trabajo de un servidor DNS por un fichero . Si los clientes son máquinas Windows, has de modificar el fichero c:\windows\system32\drivers\etc\hosts

  9. Lobo tuertoon 16 ene 2008 at 10:41 pm

    Hola, muy buen tip, andaba buscando precisamente como hacer esto.

    Una pequeña correción:
    a2ensite: apache2 enable site

    Saludos!

  10. Ikkion 20 ene 2008 at 10:41 am

    Estupendo trabajo!
    Me ha sido de gran ayuda

  11. Patriciaon 22 ene 2008 at 11:28 pm

    Excelentes tips, me funcionaron de maravilla para direccionar el moodle, lo que necesito como Takashi es lograr montar un DNS, para que desde otras máquinas puedan ver esta página, es más lo que intento es configurar todo en un flash (espero lograrlo) es posible que pueda configurar mis virtualhost, un servidor DNS y que funcione en un flash como si fuera un CD-Live?

  12. tekoon 22 ago 2008 at 3:00 pm

    muy buena informacion todo!!
    tema :Hosts Virtuales en Apache 2 (Ubuntu)
    tengo el siguinte inconveniente
    en en virtual hosting declarado en koha-httpd.conf cambie el nombre luisdk por la IP de la PC.
    porque no puede funcionar con el nombre luisdk y si con la IP ???????????’
    GRACIAS

  13. franciscoon 27 oct 2008 at 6:39 pm

    y esto solamente funciona en modo local?
    que tengo que hacer para que funcione en mi IP real y qu esalga a internet?
    de antemano muchas gracias

  14. Danielon 20 nov 2008 at 1:35 am

    Tengo un problema, cuando hago agrego
    NameVirtualHost *:80

    en el default y dps hago el restart me tira esto

    [Wed Nov 19 20:51:05 2008] [warn] NameVirtualHost *:80 has no VirtualHosts

    quizas es algo re boludo, pero soy un hiper novato! asi que perdon si es una tonteria.

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

  16. Jorge Zuñigaon 10 feb 2009 at 4:53 pm

    Hola agradesco de ante mano a todas las personas, mi problema es el siguiente.
    soy nuevo y estoy intentando instalar mi Wifislax – Vmware y ya llege a registrarme y todo pero para dar arranque me sale esta nota :

    Esta máquina virtual está configurado para funcionar con 2 CPUs, pero el host tiene sólo 1 CPU (s). La máquina virtual no puede ser encendido.

    como dije soy nuevo y no se como solucionarlo aver si e pueden echar na mano.

    Gracias

    mi correo es jorgecarlosz@yahoo.es

  17. Josfaon 01 jun 2009 at 11:07 pm

    Tengo un problema y ya me estoy desesperando… No puedo cambiar la dirección ip de mi server para que me lo de por su nombre de dominio, es decir mientras introdusca en el navegador “http://xxx.xxx.xxx.xxx” si me sale la web pero si le porngo el nombre “http://misitio.net” no me muestra nada quiero aclararles que trato de montar una intranet, lo e echo con windows y es muy facil pero con linux ya me estoy desesperando. No se que es lo que tengo que hacer tenemos otro server con win 2003 no se si agragarlo a ese dominio o que onda ya e echo todo lo que esta en los blog y no me funciona al hacer lo que dices ahi arriba me dice que no ha sitios virtuales para apache…. Que hago

  18. Franciscoon 06 jul 2009 at 1:43 am

    Después de no ser capaz de hacerlo con otros tutoriales éste me ha servido. Muchas gracias.

  19. cesaron 14 jul 2009 at 8:49 am

    hola bueno yo he podido configurar los host virtuales con dirección pública y funcionan bien al acceder a los diferentes servidores de la intranet pero tengo el problema que quiero mostrar un archivo swf y no me muestra nada ya modifique el archivo mime.type. Alguien me puede ayudar?

  20. Jonathanon 23 ene 2010 at 10:49 pm

    Muy buen aporte, la verdad me he ahorrado unos minutos, quizá más en la configuración de mi Apache. Muchas gracias!!!

  21. luison 15 abr 2010 at 5:42 pm

    Hola me paso lo mismo q a daniel

    root@sistemas9:/etc/apache2# /etc/init.d/apache2 force-reload
    * Reloading web server config apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    [Thu Apr 15 12:41:02 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
    [Thu Apr 15 12:41:02 2010] [warn] NameVirtualHost *:80 has no VirtualHosts

    que sera O.o

  22. kluison 15 abr 2010 at 5:44 pm

    cuado force reload pasa esto:

    alguien sabe q hacer?

    root@sistemas9:/etc/apache2# /etc/init.d/apache2 force-reload
    * Reloading web server config apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    [Thu Apr 15 12:41:02 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
    [Thu Apr 15 12:41:02 2010] [warn] NameVirtualHost *:80 has no VirtualHosts

  23. adminon 15 abr 2010 at 7:06 pm

    Son warnings, avisos, y no errores.

    En el archivo de configuración tendrás:

    ServerName XXXXX

    donde XXXX es nombre que quieras darle al virtual host. Ese nombre debe estar en /etc/hosts asociado a la IP 127.0.0.1

  24. luison 15 abr 2010 at 8:43 pm

    gracias admin por la informacion. pero sigo con problema.
    en el archivo host tengo:

    127.0.0.1 localhost
    127.0.0.1 sitio1

    si entro a local host desde url me pçmuestra la pagina index q esta pero si entro a sitio1, deveria mostrarme la pagina index PERO la q esta dentro de la carpeta var/www/sitio1
    y me muestra la misma index q si pusiera lolcahost q es /var/www/

  25. zuronon 17 abr 2010 at 3:32 pm

    Para luis:

    Debes indicar la ruta en las siguientes lineas:

    DocumentRoot /var/www/sitio1

    spero que te sirva…

    saludos

  26. zuronon 17 abr 2010 at 3:36 pm

    no salio la segunda linea…

    OJO va entre los simbolos menor que y mayor que “”
    Directory /var/www/sitio1

  27. JESÚS MERINO CARRETEROon 07 jun 2010 at 12:45 pm

    Muchas gracias. Un post genial

  28. guson 01 jul 2010 at 10:00 pm

    hola q tal es muy bueno el tutorial ,,, solo q tengo un pqueñisimo detalle todo lo hago perfefctamente y cada uno de los paso y voy bien ,, pero al llegar al paso de recargar apache2 me aparece en terminal esto:
    Syntax error on line 1 of /etc/apache2/sites-enabled/000-default:
    Invalid command ‘NameVirtualHost*:80′, perhaps misspelled or defined by a module not included in the server configuration
    …fail!

    espero alguien me pueda ayudar!!!! xfas!!

  29. adminon 01 jul 2010 at 10:18 pm

    @gus: puedes borrar la línea

    NameVirtualHost *:80

    y todo debería de seguir funcionando OK.

  30. guson 02 jul 2010 at 12:02 am

    muchisimas gracias!!!

    lo q pasa esq soy un poco nuevo en esto y espero aprender muchisimo mas y esta manera la vdd es muy agradable

    espero seguir en contacto!!

    cuidate q estes bien y gRaX por contestaR!!! : )

  31. guson 02 jul 2010 at 11:06 pm

    q tal amigo amigo admin!!!!

    Oie ps molestandote ,, no se si me pudieras ayudar??,, ps comenzare a trabajar en LAMP con IDE eclipse helios y necesito debbuguear con xdebug pero no se como conectar el xdebug con el eclipse( o dar de alta xdebug en eclipse ), el xdebug ya esta instalado como herramienta en mi servidor virtual q he creado con tu tutorial!!!

    EspeRo de vDD me puedas ayudar!! xfavoR xD

    SaludoS a TodoS

  32. Ivanon 23 jul 2010 at 3:10 pm

    Hola, segui el procedimiento sin embargo no accedo por: http://hackit, solo pude acceder por http://localhost/hackit, quisiera me ayude alguien porfavor…GRACIAS!!

  33. danielon 03 sep 2010 at 11:07 am

    Gracias por el post, tras mirar en otros 7 u 8, este es el unico que siguiendo los pasos fucniona!

  34. Antonioon 02 mar 2011 at 1:43 am

    Gracias me fue de mucha utilidad perdi media mañana tratando de echarlo andar… todo funciona perfectamente

  35. williamon 10 mar 2011 at 5:09 am

    bueno he aqui un problema en el tutorial espero corregir bien en las lines donde se edita el hackit

    ServerAdmin webmaster@hackit

    ServerName hackit

    DocumentRoot /var/www/hackit

    Options FollowSymLinks
    AllowOverride None

    deberia quedar en la ruta /var/www/hackit/ con el “/” al final haci entrara a la carpeta entonces quedara asi
    ServerAdmin webmaster@hackit

    ServerName hackit

    DocumentRoot /var/www/hackit/

    Options FollowSymLinks
    AllowOverride None

  36. mactetison 08 abr 2011 at 12:22 am

    [warn] NameVirtualHost XXX.XXX.XXX.XXX:80 has no VirtualHosts
    [warn] NameVirtualHost XXX.XXX.XXX.XXX:80 has no VirtualHosts
    [warn] NameVirtualHost XXX.XXX.XXX.XXX:80 has no VirtualHosts

    No hay manera de arreglar este “warning”…

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

  38. [...] investigando y llegue a una pagina que me sirvió muchísimo. Así que ahí les mando el enlace. Diario linux Advertisement LD_AddCustomAttr("AdOpt", "1"); LD_AddCustomAttr("Origin", "other"); [...]

  39. Pabloon 08 sep 2011 at 12:16 am

    Muy groso el post. La verdad que me sirvió bastante. Y pude sacar andando el servidor con los virtualhost que necesitaba. Se agradece.

  40. martaon 18 ene 2012 at 10:16 pm

    Soy super novata y estoy intentando hacer esto que ya se lo vi hacer a un colega.

    Descargué esto:
    sudo apt-get install php5 libapache2-mod-php5 php5-mysql mysql-server phpmyadmin

    Bajé el drupal y lo moví al directorio /var/www
    pero como no lo tenía, lo cree (el www)

    Modifiqué hosts con la ip y el nombre

    Cuando fui a mover la página a sites-available vi que no tenía este directorio en etc/apache2 y lo cree y lo moví allí

    Cuando he ido a habilitar la página con a2ensite me ha dicho
    a2ensite: no se encontró la orden

    He visto que tampoco tenía sites-enabled, así que lo he creado (todo dentro de etc/apache2). Sigue sin encontrar la orden y no sé si desde el principio tendría que haber tenido estos dos directorios y es que he hecho algo mal desde el principio o falta algo para que entienda esta orden.

    Como es casi la primera vez que escribo en la consola estoy bastante perdida, jeje, y supongo que habré hecho un lío todo, pero a ver si alguien se anima a entenderlo…

    Gracias!

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment