Estás en Inicio / Editorial / Software Libre
27.03.2006
Un host virtual, o VirtualHost, en Apache nos permite mantener múltiples nombres de host en nuestro servidor.
El presente manual permite explicar de manera sencilla y concisa cómo crearlos en nuestro servidor local y configurar nuestro sistema operativo para que acepte dichos nombres de host. Muchos de nosotros estamos acostumbrados a trabajar en nuestro servidor web local para nuestros proyectos en modo de prueba o testeo, y por lo generalmente tenemos más de un proyecto en camino, sea laboral (p.e. el web site de un cliente) o personal (p.e. nuestro blog o comunidad virtual). Solemos guardar estos proyectos en carpetas separadas dentro un directorio tal como C:/www/ que sería nuestro directorio raíz web (desde el cual llamamos a nuestro clásico http://localhost ), y llamar a nuestros proyectos de la siguiente manera en nuestro navegador preferido:
http://localhost/bazar , entro otros por citar un ejemplo.
En cierto modo podemos trabajar de manera regularmente cómoda, pero quizá desearíamos usar el nombre del dominio real con el que trabajos estos proyectos en la Internet. Así podríamos hacer usar lo siguiente:
http://www.tiperu.com en lugar de http://localhost/tiperu ,
http://willy.tiperu.com en lugar de http://localhost/willyblog , o
http://www.bazarperu.com en lugar de http://localhost/bazar
Y cómo hacemos esto?, pues la respuesta es sencilla, configurando la directiva VirtualHost de nuestro servidor Apache y el archivo host de nuestro Sistema Operativo (Windows o Linux).
Lo primero que configuraremos será el archivo host de nuestro SO, para Linux lo podemos encontrar en el directorio /etc/ mientras que para Windows XP lo encontramos en C:/Windows/System32/Drivers/etc/. Este archivo lo que hace es asignar direcciones IP a los nombres de host, para que al colocar por ejemplo 127.0.0.1 o localhost en nuestro navegador nos redireccione al mismo contenido. No se sorprenda si encuentra el siguiente par en el archivo host: 127.0.0.1 localhost, dónde el primer valor es nuestra dirección IP local y el segundo el nombre del host.
Lo que haremos ahora es colocar tantas entradas cono deseemos para nuestros proyectos, relacionando la IP local con nuestros nombres de dominio. Para el ejemplo tomaremos las rutas que di anteriormente, las cuales se colocarán debajo del par 127.0.0.1 localhost:
#localhost 127.0.0.1 localhost #TIPeru COM SAC (Mi empresa de hosting) 127.0.0.1 www.tiperu.com #Mi blog 127.0.01 willy.tiperu.com #BazarPeru (Tienda Virtual) 127.0.0.1 www.bazarperu.com
Nótese que he colocado el caracter “#” . Este carácter nos permite ingresar un texto a manera de comentario. Bueno, una vez hechos estos cambios procedemos a guardar el archivo.
Para confirmar su funcionamiento abra su navegador y digite cualquiera de los nombres de host que ha agregado, recuerde de respetar el nombre completo, ya que una entrada del tipo tiperu.com no tendría efecto por carecer del www. que lo antecede.
Si al ingresar el nombre del host le muestra el contenido de su http://localhost significa que la asignación de IP para el nombre de host a tenido efecto. Nótese que aún su nombre de host no apunta a la carpeta en la que se guarda su proyecto. Este punto lo veremos a continuación.
Ahora configuraremos nuestro servidor Apache para que acepte los nombres de dominio agregados al archivo host y los relacione con las carpetas que albergan los archivos de nuestros proyectos. Para ello abriremos el archivo conf/httpd.conf y nos dirigiremos a la siguiente sección:
# # Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. #
• Haga una copia de respaldo de sus archivos de configuración antes de realizar cualquier cambio en ellos.
• Si no encuentra la sección Virtual Hosts en el archivo httpd.conf quizá lo pueda ubicar en la siguiente ruta conf/extra/httpd-vhosts.conf
Luego procederemos a quitar el comentario de ##NameVirtualHost *:80 dejándolo de la siguiente manera:
# # Use name-based virtual hosting. # NameVirtualHost *:80 #
Esta acción nos permisita trabajar con host virtuales basados en nombres. El * representa un número IP y puede ser reemplazado por uno de ellos si desee. Para el ejemplo déjelo tal y como esta.
Enseguida procederemos a configurar los host virtuales, agregándolos de la siguiente manera:
#localhost <VirtualHost *:80> DocumentRoot "C:/www" ServerName localhost:80 </VirtualHost> #TIPeru COM SAC <VirtualHost *:80> DocumentRoot "C:/wwww/tiperu" ServerName www.tiperu.com </VirtualHost> #Mi Blog <VirtualHost *:80> ServerAdmin willy@tiperu.com DocumentRoot "C:/wwww/willy" ServerName willy.tiperu.com </VirtualHost> #BazarPeru <VirtualHost *:80> ServerAdmin webmaster@bazarperu.com DocumentRoot "C:/wwww/bazar" ServerName www.bazarperu.com </VirtualHost>
Como se puede aprecia cada Virtual Host esta encerrado entre las etiquetas <VirtualHost> y </VirtualHost> que contiene el parámetro *:80 que es NameHostVirtual al cual se refiere. Dentro de estas etiquetas, 2 valores son esenciales para que funcionen correctamente nuestros host virtuales:
• DocumentRoot. Que es la ruta en la cual se guarda nuestra página web; y
• ServerName . Que es el nombre del host que previamente agregamos al archivo host de nuestro S.O.
Adicionalmente podemos agregar otros valores, tal como si cada host virtual fuera un host independiente (p.e. ServerAdmin).
Nótese algo muy importante. Si bien localhost es nuestro servidor local por defecto, debemos también agregarlo con un virtual host para que todo trabaje en orden, y debemos agregarle los mismos valores del DocumentRoot y ServerName que posee en su configuración global, de lo contrario no cargará el host.
Finalmente lo que haremos es para el servicio de nuestro servidor Apache y volverlo a inciar. Si tod o esta correctamente configurado podemos cargar en nuestro navegador uno de los nombres de host y ver los resultados (p.e. www.tiperu.com ). Si carga el contenido de la carpeta que le hemos asignado en el <VirtualHost> y no el directorio raiz del localhost quiere decir que todo esta correcto. Felicidades Ud. Ya tiene configurado su host virtual !!!
Al equipo de TIPeru COM por su contante apoyo. Y a la Asociación Nacional de Webmaster del Perú ( ANWMP ) por resolver mis dudas e interrogantes mediante sus foros y Chat en línea.
Soporte Apache de hosts virtuales basados en nombre
http://quark.fe.up.pt/ApachES/manual-es/vhosts/name-based.html
Configuración de Apache | Cibernetia
http://www.cibernetia.com/manuales/instalacion_servidor_web/2_3_configuracion_apache.php
Virtual Host examples for common setups
http://quark.fe.up.pt/ApachES/manual-es/vhosts/examples.html
Califica esta nota:
William Wong Garay
De origen peruano, es desarrollador web autodidacta, amante del software y filosofía libre y la ética hacker.
Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.
Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?
61 comentarios en total.
Esta forma de accesar al host no la conocia pero creo que es mucho mejor que la forma que todos conocemos originalmente, por tal motivo me arriesgare a probarla y ahi les cuento que tal me fue. Saludos…
P.D. Gracias por el pequeño manualito
Saludos… espero te sea de ayuda… y espero nos cuentes tus experiencias al respecto.
Hola William E. Martín Wong Garay, me gustaria saber q mas hay q hacer para el pag puedan ser accesadas desde otra pc por internet.. porf enviar respuesta a juliocsg54@hotmail.com..Gracias!
Hay forma de “Engañar” o hacer que mi servidor tenga un dns .com .net, etc….
si necesidad de tener que comprarlo en otro servidor.
en pocas palabras que haga la funcion de los servidores de dns
Excelente manual
eso esta muy bien (quiero decir, la explicacion) y funciona de cara a internet.
pero en una red si tecleo http://www.nombre_de_mi_dominio.com entonces aparece la ventana de entrar o accesar a mi router.
lo tengo configurado (mi server) desde hace años usando el virtual host tal como lo has explicado y nunca he tenido problemas, pero con los ordenadores de la red simepre me ha pasado eso
si tienes alguna idea que pueda ayudarme te agradeceria
saludos
amigos… estoy tratando de configurar 2 sistios en el mismo servidor apache usando virtual hosts.. pero en uno de ellos uso scipts y php para accesar a una bdd, cuando acceso por la direccion ip funciona, pero con el nombre asiganado entra pero no reconoce algunos scripts… q tengo que configurar adicional????… ayuda???
Saludos a todos, mil disculpas x no estra al tanto de los posteos, mucho de ellos no los puedo responder porque el tema redes en sí no es mi fuerte, sino la programación web. De otro lado si tienen problemas al llamar desde otra pc conectada por red a su servidor de Apache local quiza deban configurar el archivo host de las maquinas clientes para que reconozcan la ip de la pc que alberga su servidor apache.
Bye y gracias por los comentarios. Para ver nuevos artículos visiten mi blog.
// http://willy.tiperu.com //
Hola!!!! yo no entiendo nada tutorial de apache
sobre ip y dominio la verdad pero me gustaria
k me vas a ayudar y explicar x msn te doy mi
email de msn es chikita.frutillina_d@hotmail.com
ahi espero k me agregas eso xD ya bno me despido
xauuuuuuuuuuuu
salu2 a todos!!!!!
muxisimas gracias, llevaba meses loco intentando solucionar esto y gracias a este tuto e podido MUXAS GRACIAS
wenas alguien me puede pasar alguna pagina donde encuentre una guia completa de que necesito como lo tengo que instalar y como hago para levantar mi web usando de servior mi makina?
pork si entiendo esto pero una ves echo lo que dise aki en esta guia que tengo que hacer para levantar la pag? o ya esta up una ves hech esto? no se mucho sobre este tema solo me dedico a editar web en idioma html un SALU2 espero me respondan ! =)
Hola, actualmente estoy con los videotutoriales de septimo continente de php y mysql los recomiendo ampliamente…. sin embargo trabajo con mi servidor localhost…. que necesito para accesar a mis paginas desde otra pc? osea desde internet… hay que pagar algo?? o no??
muchas gracias….mi correo es taichin_fly@hotmail.com
solo necesito una pequeña pista, gracias…
Quetal a todos, les escribo por que siguiendo los pasos de nuestro amigo willy configure e servisor apache. el problema es que puedo ver las paginas con el nombre del dominio solo si lo hago en la maquina servidor, si alguien las quiere ver desde internet no le muestra nada, para esto tome un subdominio de http://www.fadlan.com espero que alguien mepueda hechar una mano con esto..
de antemano gracias
Saludos Hector, y a todos en general. Este tema es aplicable a servidores en local que no esten conectados en internet o cuyos dominios a testear no se encuentren registrados. Si est{an conectados a internet ocurrira que solo les cargara el localhost con el virtual host configurado, ya que el archivo host apunta hacia una ip local. La unica solución de momento es quitar la linea agregada al archivo host para que su dominio sea resuelto desde internet y no en local.
// http://willy.tiperu.com //
Hola companero willy te escribo para decirte que resolvi el problema cambiando la paagina que me ofrecio el subdominio..
la cuestion es que aahora que quiero crear mas vrtual host solo me habre el que declaro primero en el archivo de host y la verdad no entendi como es que mi servidor apache puede diferenciar a cual host se le hizo la peticion desde la pagina que me ofrece los dominios , si hay que indicarselo dese la pagina que ofrece el subdominio o si solo es posible encontrar los host si se utilizan dominios enteros y no subdminios espero haberme podido explicar, y puedas despejarme esa duda.. , de nuevo gracias por toda tu atencion y te saludo desde mexico
Hector
Perdon.. no es en el archivo de host sino en el archivo de configuracion de los virtual host donde ocurre que el virtual host que declaro primero es el qeu me abre..
Perdon por el error y gracias por leer mi asunto
Compañero como esta;
estuve investigando sobre virtualhost y con tu ayuda en Maestros de la web, me ayudaste mucho pero ningun ejemplo de ellos funciono,
la pregunta es: pudria ayudare , necesito montar una pagina en una red local o intranet, como podria hacerlo ?
tengo instalado apache server 1.3
mi direccion de email es k_chorro_7@hotmail.com
Muchas gracias
saludos desde colombia
Me llegán al huevo…
esta de arte el manual pero esto solo se puede visualizar desde el servidor si te conectas a internet desde otro equipo te da error, yo he ledio que tienes que asignar una dns para tu dominio y que lo debe hacer el que te ha registrado el dominio bien esa “dns” se a creado de forma que dns1.midominio.com apunta a mi ip, hasta hay bien pero que hago despues como hago para que se visualice dicho dominio en todos los equipos que se conecten a internet??? me seria de gran ayuda esta aclaracion…
Funciona muy bien desde el servidor. Pero cuando llamo a los vhosts desde otras pcs no funciona que será lo me falta. Tengo una ln interna con win98 y winme. El server es Win xp
Si hago lo que esta en este tutorial, tengo un dominio y ud IP estatica, podre montar tantas paginas como lo requiera o solo funciona en una lan?
No he probrado el tema de los virtual host, ya que no lo he creido conveniente, tengo páginas web diferentes en subcarpetas del localhost, con php y mysql, y lo único que tengo que hacer es comprar un dominio ó adquirir uno gratuito y redireccionarlo a la carpeta de mi localhost donde se encuentra la Web determinada, ya que los virtualhost funcionan en local “Creo”.
Saludos…
buen articulo y buen diseño paginas web
Hola, queria saber si hay alguna forma de acceder a una pagina que tiene el Apache/2.0.49, osea, es un chat y yo quiero entrar pero no me deja entrar, por favor, si alguien sabe la respuesta o alguna manera de hacer algo, escribame a nadia_samma@hotmail.com y si va a responder aca tb, gracias
Amigo tengo una consulta yo lo he configurado en la red pequeña que tengo pero cuando quiero ingresar tengo que configurar un proxy, y cancelar mi conecciòn de speedy adsl, mientras trabajo con la web internas y viceversa
Felicidades por este tan sencillo manula pera muy contundente y todo va directo al grano tal como nos gusta a algunas personas sobre la realización de ciertos puntos.
Muchas gracias, es lo que estaba buscando. Una explicación sencilla y clara.
Hola..
si tenia una pregunta me pasaron mi usuario y password
y el host directory
pero noze como ingresar y asi :S
Si desean emplear puertos diferentes solo tienen que declarar Port ## en la seccion principal para aquellos que empleen Dns2go o DYNDNS
SOOOOOOOOOY JOOOOOOOOOOOTOOOOOOOOO
AAAMI ME GUSTA LA VERGAAAAAAAAAAAAAAA
AMI TAAAAAAAAMBIEEEEEEEEEN
AMI ME GUSTA KE ME LA ,METAN POR DEETRAS
I came in search of detailed information on Dnipropetrovsh and found very little available on your website… I would have liked to found at least detailed general information.
hola, tengo problemas con mi virtual host. Todas las consultas que hago mi sale la host por defecto. Esta todo bien, pero es como si la consulta llevara otro nombre de dominio, en vez del que tengo asignado para las virtual host (como si pusiera alguna ip o nombre el router a su paso).
Gracias,
Muy buena la información, gracias por la ayuda, adjunto lo que he hecho con ella, por si interesa a alguien.
===Preparar XAMPP para varias webs=====
Basado en http://www.maestrosdelweb.com/editorial/host/
(artículo de William Wong Garay).
PREMISAS: Instalación de XAMPP portable, debe correr en cualquier unidad de disco
incluido un pendrive; el directorio XAMPP cuelga del raiz (ejemplo f:\xampp o c:\xampp)
Se instalan varias webs y un directorio de prueba (test), así como lll y l como
alias de localhost (NOTA lll para indicar acceso local en contraposición de www).
Esto permite acceder al dominio aigoi.com (por ejemplo) de los siguientes modos:
en bucle remoto: http://www.aigoi.com/
en local: http://lll.aigoi.com/ (lll en lugar de www)
como subcarpeta: localhost/aigoi
lll/aigoi
l/aigoi (l es mas fácil de escribir)
=========PRIMERO======================
Al fichero C:\WINDOWS\system32\drivers\etc\hosts (tras sacar copia de seguridad),
se añaden las siguientes líneas:
&&&&&&&&&&&&MODIFICACIÓN&&&&&&&&&&&&&&&&&&&&&
# Líneas añadidas el 2-3-2007 para trabajar con XAMPP en local
127.0.0.1 lll.alabola.com
127.0.0.1 lll.aigoi.com
127.0.0.1 lll.izapata.com
127.0.0.1 lll.test.com
127.0.0.1 lll
127.0.0.1 l
&&&&&&&&&&&&FIN DE LA MODIFICACIÓN&&&&&&&&&&&&
Reiniciar el PC
=========SEGUNDO======================
Desactivo Xammp (es decir Apache)
Al fichero K:\xampp\apache\conf\extra\httpd-vhosts.conf
(tras sacar copia de seguridad), se añaden las siguientes líneas:
&&&&&&&&&&&&MODIFICACIÓN&&&&&&&&&&&&&&&&&&&&&
#==================MODIFICACIONES=======================
# ESTO ES NECESARIO PARA QUE FUNCIONE EL SERVIDOR VIRTUAL
NameVirtualHost *:80
# ESTO ES NECESARIO PARA QUE FUNCIONE localhost
#localhost
DocumentRoot “\xampp\htdocs”
ServerName localhost:80
#==============ENTRADAS PARA LOS DOMINIOS EN LOCAL==========
#izapata
DocumentRoot “\xampp\htdocs\izapata”
ServerName lll.izapata.com
#aigoi
DocumentRoot “\xampp\htdocs\aigoi”
ServerName lll.aigoi.com
#alabola
DocumentRoot “\xampp\htdocs\alabola”
ServerName lll.alabola.com
#test
DocumentRoot “\xampp\htdocs\test”
ServerName lll.test.com
#==========ENTRADAS PARA LOS DOMINIOS EN BUCLE REMOTO (nombre original del dominio)=======
#izapata
DocumentRoot “\xampp\htdocs\izapata”
ServerName http://www.izapata.com
#aigoi
DocumentRoot “\xampp\htdocs\aigoi”
ServerName http://www.aigoi.com
#alabola
DocumentRoot “\xampp\htdocs\alabola”
ServerName http://www.alabola.com
&&&&&&&&&&&&FIN DE LA MODIFICACIÓN&&&&&&&&&&&&
Excelente manual, creemos que vale la pena llamarlo curso, por lo que lo hemos incorporado a nuestra base de datos de los mejores cursos en la Web.
Saludos,
Rossana Aravena
Administrador
http://www.educagratis.cl
Saludos Rossana, gracias por incorporar mi manual en Educagratis ![]()
Hola, quería comentarles que seguí el manual al pié de la letra pero cuando coloco la dirección http://www.tiperu.com por ejemplo, me dice que: (No está autorizado a ver esta página). Cual será el problema! Gracias por disponer de un sitio como este en el que se pueden encontrar cosas de utilidad. A propósito tengo mi sitio funcionando pero aparte de esto quiero saber como enviar o tener una pagina como esta en la que estoy escribiendo ahora para que dejen comentarios. Todo lo que hago es con fines de estudio y aprendizaje por cuenta propia. Gracias nuevamente.
Muy buena guia. Te felicito y agradezco
Excelente, justo lo que andaba buscando, voy a hacer las pruebas necesarias. ¡Gracias!
hola, gracias por el tuto, yo arranqué mal!
como configuro el archivo host?
como agrego las url ahi , con que lo abro? uso windows, si soluciono esto primero voy a poder seguir, gracias!
Gracias por el Tutorial, me sirvio mucho para poder configurar linux para que sirviera tambien las paginas que tengo guardas en el servidor instalado en windows.
Saludos!!…
nada mas que decir chicos son lo maximo me sacaron de apuros mañana es mi examen de este tema estava buscando asta que lo encontre y muy detallado !!! GRASIAS CHICOS TENDRIAN QUE SER PERUANO COMO YO !!!
BUENISIMO…. EXCELENTE… te lo agradezco… eres un master. tuve esa inquietud ayer (la de asignarles host a los sitios) y no supe como hacerlo y hoy me encuentro con tu curso… se paso… te las mandaste… graciela y a probar po’…
Buenas amigo ya entendi la configuracion pero lo que si no e entendido es como la puedo ver de otra maquina hay que comprar un dominio o como se hace para que se mire la direccion pro ejemplo http://www.empresatc.como en internet
probe esa forma y me agrado mucho. gracias por sus tips en cuanto a software. sos muy inteligentes
Excelente, exactamente lo que necesitaba! muchas gracias
diskulpen pero nose por que ami no me funciona me puedenb ayudar por favor gracias por que hago todo tal como lo dice
Hola William! una pregunta: como puedo simular subdominios en mi sitio web? Yo tengo mi pagina hospedada en un servidor compartido. suponiendo que mi dominio es http://www.midominio.com.
¿como puedo hacer sin modificar mis DNS para que cuando alguien escriba: http://subdominio.midominio.com se vaya siempre a http://www.midominio.com??
Te agradezco mucho de ante mano tu ayuda.
Marco.
Perdon, se me olvidada
No se si haya forma de recuperar cual fue el sudbominio que se escribio, por medio de php
Se que se puede hacer algo con mod_rewrite, pero aun estoy muy nuevo en esto.
ejemplo: al escribir: subdominio.midominio.com vaya a:
http://www.midominio.com/index.php?sb=subdominio.
y ya dentro del script de php recuperar el valor del sb.
Cualquier ayuda lo agradeceré infinitamente.
Saludos!
Marco.
me a funcionado de lujo..
muy buen tutorial
Muchas Gracias, por el post, me sirvio de bastante.
Hola William, te quiero agradecer por la ayuda que me brindaste… ya en algun momento lo habia tratado de cambiar sin solucion alguna… te agradezco por que di en el punto…
Hola un saludo al foro.
Estoy como loco perdido buscando la forma de que me funcionen 2 webs con el apache.Tengo xp.
he probado todo.
he revisado todo a milimetro,pero nada.
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#localhost
DocumentRoot “C:\Archivos de programa\Apache Group\Apache2\htdocs”
ServerName localhost:80
#tingua
DocumentRoot “C:\Archivos de programa\Apache Group\Apache2\htdocs/tingua”
ServerName agu.dynalias.com
#Mi Blog
ServerAdmin frostwind@hotmail.com
DocumentRoot “C:\Archivos de programa\Apache Group\Apache2\htdocs\tingua”
ServerName agu.dynalias.com
#otra
ServerAdmin frostwind@hotmail.es
DocumentRoot “C:\Archivos de programa\Apache Group\Apache2\htdocs/agu”
ServerName telepc.ath.cx
Fran asi resuelves el tema de los permisos
DocumentRoot “C:/www”
ServerName pesca
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
Hola he instalado el Xampa todo bien me funciona el localhost pero no se si tengo que hacer alguna configuracion en la red de windows o cambiar el router pues desde una intranet funciona y cuando pongo mi ip desde fuera de casa no sale la pagina web estoy desesperado no se que hacer
Gracias por la ayuda, me sirvio bastante.
Saludos.
Gracias por su Mini Manual, me ha sido de vital importancia.
Sergio
hola, estoy haciendo un manual sobre practicas de laboratorios de base de datos, pero tambien necestio crear un laboratorio virtual donde se lleven a cabo las practicas osea tener una interaccio maestro alumno puedo crear el laboratorio haciendo lo que explicaron en este manual ayudenme por fas me urge saber
ah otra cosilla estoy utilizando para la realizacion de las practicas el xampp contesten por fass
3 trackbacks en total.
Maestros del Web es el punto de encuentro para los entusiastas de la red.
Creative Commons by-nc-sa 3.0 | Política de Privacidad | CMS: Wordpress