Fin del soporte para PHP4 »

Configurando Virtual Host en Apache 2.2

Configurando Virtual Host en Apache 2.2

Permalink 20/07/2007 01:12:43, por fallenjehova Email , 610 words, 1525 views  
Categories: Desarrollo Web

Bueno, para aquellos que no lo saben. ¿Qué es un virtual host? O empezando por lo básico:

¿Qué es un host?.

Según los anónimos editaros de la wikipedia en español, el término informático host, puede referirse a (todo muy relacionado):

  • El “nombre” de un equipo conectado a una red de computadoras, asignado por el administrador de red.
  • Un nombre de dominio (la parte de la url que identifica al servidor que brinda el servicio). Ej: www.fallenjehova.com.ar.</li>
  • El archivo que en muchas computadoras contiene información sobre resolución de dominios (básicamente consiste en obtener la IP de un servidor, en base a su nombre de dominio).

Nosotros tomaremos la segunda opción. Por lo tanto interpretaremos a un virtual host como la práctica de tener varios dominios funcionando sobre el mismo equipo.

Hay dos tipos de virtual hosts. Basados en direcciones IP (asignando una IP a cada dominio) o basados en nombres. Aqui hablaremos de vhosts basados en nombres (pero sos libre de obtener mas informacion de vhosts), lo que nos permite tener por ejemplo:

El sitio:
http://www.fallenjehova.com.ar/
en la carpeta:
c:\wamp\www\fallenjehova\

Y el sitio:
http://www.notengoningunotrositio.com.ar/
en la caperpeta:
c:\wamp\www\notengonada\

¿Qué utilidad le encuentro a esto?

A nivel desarrollo, me parece mucho más cómodo en el sentido de que no tengo que andar poniendo http://localhost/sdaf/asdfasd/asd/dasf/das/sdf/ para ubicar mis projectos en las carpetas. Además cuando tengo que realizar modificaciones sobre sitios que lamentablemente tienen los paths hardcodeados en los links, puedo tenerlo funcionando en segundos sin tener que molestarme en andar reemplazando todo.

Ni a hablar la ventaja de los vhost a nivel servidor, básicamente muchísimos hostings utilizan los vhost para ofrecer diversos dominios en una misma pc, y con una misma ip.

Configuración

Suponiendo que queremos la configuración arriba propuesta. Para habilitarlo tendremos que modificar dos archivos. El primero es el conocido httpd.conf y descomentar o agregar la siguiente linea:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Ademas debemos configurar los directorios donde estarán nuestros sitios y con las opciones que deseamos para cada uno:

<directory C:/wamp/www/fallenjehova>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,Deny
    Allow from All
</directory>


<directory C:\wamp\www\notengonada\>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,Deny
    Allow from All
</directory>

Luego en conf/extra/httpd-vhost.conf

<virtualhost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:/wamp/www/fallenjehova"
    ServerName www.fallenjehova.com.ar
    ErrorLog ../logs/fallenjehova_apache_error.log
    CustomLog ../logs/fallenjehova_access_log common
</virtualhost>

<virtualhost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot “C:/wamp/www/notengonada”
    ServerName www.notengoningunotrositio.com.ar
    ErrorLog ../logs/notengonada_apache_error.log
    CustomLog ../logs/notengonada_access_log common
</virtualhost>

Luego reiniciamos apache y todo debería estar funcionando. Pero ahora bien, cuando querramos tipear esos hosts en el browser si existe nos va a direccionar no a nuestro server sino a donde esté alojado ese sitio, y si no existe nos dirá que no existe el host. Para poder acceder a esas direcciones localmente, debemos editar el archivo hosts: /etc/hosts (en linux) o c:\WINDOWS\system32\drivers\etc\hosts ( en windows ).

Agregando una entrada con nuestra ip (127.0.0.1 y el nombre de dominio que queremos). De esta forma, desde nuetra maquina si ponemos en el browser al sitio www.notengoningunotrositio.com.ar, accederemos a los sitios. Obviamente perdemos la capacidad de acceder al sitio original, ya que lo resolverá como dirección local.

Comments:

Comment from: ricardo [Visitor] Email
muy buen tutorial... todo muy claro y preciso.. funciono todo perfecto.

FELICIDADES
PermalinkPermalink 16.01.08 @ 21:12
Comment from: fallenjehova [Member] Email
Ricardo, muchas gracias por tu comentario.

La verdad que el blog lo re colgué aunque recientemente empecé a escribir en otro, www.gignus.com pero en inglés.

Me alegro que esto siga siendo útil para alguien!

PermalinkPermalink 17.01.08 @ 16:15
Comment from: Andrea [Visitor] Email
Excelente, tutorial, segui los pasos y ta... todo quedo.

Gracias.
Saludos Andrea
PermalinkPermalink 31.03.08 @ 10:15
Comment from: fallenjehova [Member] Email
Gracias Andrea por tus comentarios!
Me alegro que te sirvió.
PermalinkPermalink 01.04.08 @ 10:00
Comment from: Joan [Visitor] Email
hola, tengo una duda, que debo hacer si tengo varias carpetas de proyectos en www, como configuro el httpd.conf, por ejemplo

c:/wamp/www/proyecto1
c:/wamp/www/proyecto2
c:/wamp/www/proyecto3

ya que si agrego lo que dices en el httpd.conf ya no corre el wamp, de hecho encuentro algo como esto:

ServerName localhost:80

DocumentRoot "c:/wamp/www/"

Directory
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Directory

Directory "c:/wamp/www/"
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Directory

como debo configurarlo?.. agradesceria mucho su ayuda, gracias, saludos.

nota: sorry por los simbolos de mayor, menor y diagonal de directory no estan porque me marcan error en el blog.
PermalinkPermalink 25.06.08 @ 09:53
Comment from: fallenjehova [Member] Email
Hola Joan, el problema es que estas definiendo la misma carpeta en ambos Directory. Lo siguiente debería funcionarte:


directory C:/wamp/www/proyecto1
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
/directory


directory C:\wamp\www\proyecto2
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
/directory

directory C:\wamp\www\proyecto3
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
/directory
PermalinkPermalink 25.06.08 @ 13:32

Leave a comment:

Your email address will not be displayed on this site.
Your URL will be displayed.

Allowed XHTML tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
(Line breaks become <br />)
(Set cookies for name, email and url)
(Allow users to contact you through a message form (your email will NOT be displayed.))