Virtual host, en Apache 2.0
April 3rd, 2006 by BusindreLos host virtuales (VirtualHost), son dominios con una sintaxis: http://virtualhost.host.com. Si vuestro servidor es www.host.com, podréis crear el host virtual antes mencionado simplemente indicándole a Apache que, en el caso de que sea convocado el virtualhost y no el host directamente, vaya a leer los archivos en otro directorio que no sea DocumentRoot (/var/www/), y consecuentemente los mande al navegador de quien lo haya pedido. De esta manera se puede con un solo Apache tener "varios servers virtuales". Esto en Apache2 es muy fácil de realizar, como en sus anteriores versiones, pero no hay mucha documentación al respecto para novatos.
Veremos un ejemplo para tener dominios dyndns por cada usuario (virtual host), lo voy a hacer de manera que cada usuario tenga su directorio en su home, pero se puede hacer con cualquier directorio como es lógico:
Creamos el directorio en el home del usuario (invitado)
$ mkdir /home/invitado/public_html/
Realizamos el enlace para que este operativo el host virtual
$ ln -s /etc/apache2/sites-available/invitado /etc/apache2/sites-enabled/invitado
Creamos logs personalizados para esa cuenta:
# mkdir /var/log/apache2/invitado/error.log
Editamos: /etc/apache2/sites-available/invitado
NameVirtualHost *
<virtualhost *>
ServerAdmin invitado@gmail.com
ServerName busindre.is-a-geek.com
DocumentRoot /home/invitado/public_html/
Options Indexes FollowSymLinks MultiViews
ErrorLog /var/log/apache2/invitado/error.log
<Directory /home/invitado/public_html/>
Options ExecCGI FollowSymLinks
AddHandler cgi-script .cgi
AllowOverride all
Allow from all
Order allow,deny
</Directory>
</virtualhost>
NOTA: busindre.is-a-geek.com es el dynds asociado a la cuenta invitado
Si tenemos más dominios pues añadimos mas ficheros como invitado con su correspondiente enlace (/etc/apache2/sites-available/invitado).Recordar reiniciar el server /etc/init.d/apache2 restart
Si vas a estar en una red local, tengamos dominio comprado o simplemente en /etc/hosts nos hemos creado uno para nuestras pruebas o actividades de la red LAN, debemos ponerlo virtualhost.host.com. Siendo host.com nuestro dominio, como el anterior, pero con "ServerName" como www.virtual.host.com:
www.host.com ---> La web default, no virtual
www.virtual_1.host.com --> La web del virtual host 1
www.virtual_2.host.com --> La web del virtual host 1
Para verlo desde local debemos editar /etc/hosts.
127.0.0.1 localhost
127.0.0.1 www.busindre.com
127.0.0.1 www.invitado.busindre.com
Estos nombres deben estar en la configuración del virtual host como ServerName. Luego creamos los enlaces de la misma manera que antes y reiniciamos el server.
Posted in Internet |

July 31st, 2006 at 9:21 pm
Bien bien, me sacó de un apuro. Gracias ;)
September 19th, 2006 at 1:12 am
Hola
Bueno he siguido los pasos, tan solo que he seguido dejando el directorio dentro de var/www/ y no tengo el public_html que se pone en el tutorial.
Y e da el siguiente error cuando reinicio el server:
root@server:/etc/apache2/sites-available# /etc/init.d/apache2 restart
* Forcing reload of apache 2.0 web server... apache2: Could not determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Tue Sep 19 00:59:43 2006] [warn] NameVirtualHost *:0 has no VirtualHosts
[Tue Sep 19 00:59:43 2006] [warn] NameVirtualHost *:0 has no VirtualHosts
Porque no sale bien? donde me equivoco? ademas pongo el dominio fuera de la lan y me da el que me daba antes de hacerlo virtual, o sea que lo ve como si no fuera virtual
Saludos
Gracias
Manel
September 19th, 2006 at 1:29 am
Intenta hacerlo como dice el tutorial (Atentamente) y luego nos dices.
September 20th, 2006 at 2:02 am
gracias por la contestacion tan rapida.
ya he conseguido que un dominio se vea puse esto en el archivo :
root@server:/etc/apache2/sites-available# cat default
NameVirtualHost *
ServerAdmin susero@gmail.com
ServerName www.virtual.host.com
DocumentRoot /home/pruebas/public_html/
Options Indexes FollowSymLinks MultiViews
ErrorLog /var/log/apache2/mgandreu/error.log
Options ExecCGI FollowSymLinks
AddHandler cgi-script .cgi
AllowOverride all
Allow from all
Order allow,deny
Pero el segundo dominio que esta en el mismo sitio, no hay forma de verlo, uso la web http://www.the-cloak.com fuera de mi red.
Cuando reinicio el apache2 me da este mensaje:
root@server:/etc/apache2/sites-available# /etc/init.d/apache2 restart
* Forcing reload of apache 2.0 web server... apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Wed Sep 20 02:01:18 2006] [warn] NameVirtualHost *:0 has no VirtualHosts
[Wed Sep 20 02:01:18 2006] [warn] NameVirtualHost *:0 has no VirtualHosts
[ ok ]
root@server:/etc/apache2/sites-available#
No se lo que hago mal, pues que se vea uno y el otro no, no lo entiendo, me podiais ayudar?
Saludos
Manel
September 20th, 2006 at 3:15 am
Mira, si haces uno bien, algo raro debes hacer con el otro, o no se si intentas hacer algo que no puedes, porque eso de
-"Pero el segundo dominio que esta en el mismo sitio, no hay forma de verlo, uso la web http://www.the-cloak.com fuera de mi red".
No lo entiendo muy bien. Porque si esta igual debe funcionar (eso es de cajon). Miralo atentamente porque algo debes tener mal, el que? no lo sabemos, pero si miras atentamente encontraras el error.
Esos errores pueden ser por mil historias. Fijate en tus preguntas porque estas preguntando otra vez por el mismo error que resolviste anteriormente y no sabemos si lo que quieres hacer ahora es lo mismo o no. Es muy dificil enterarnos de que haces mal. suerte y miralo calmadamente, probando despacito y con buena letra. Si aun asi no te sale, te recomiendo que preguntes en algun foro dando una explicacion detallada de todo lo que haces,como lo estas haciendo, que quieres hacer,... aqui todo eso no tiene cabida, solo es para cosas puntuales. Pero supongo que en tu próximo comentario ya la habras apañado. enga lo dicho, mucha suerte.
Un saludo
October 11th, 2006 at 9:16 pm
Prueba a añadir el puerto:
NameVirtualHost *:80
October 24th, 2006 at 12:01 am
No entendi nada podrian explicarmelo con un poco mas de detalle por fa no sean gachos. :oops: :!: :?:
October 24th, 2006 at 12:13 am
jaja el post es el que es, si tienes duda mira otros manuales y foros donde lo explican mas detenidamente y si aun asi no te queda claro, pues pregunta en algun foro. Lo siento :| . Un saludo
October 31st, 2006 at 5:54 pm
Hola. Yo tengo un problema con un servidor apache que estoy montando como práctica. Necesito tener 2 hosts virtuales. Estoy haciendo todo esto en fedora.
Primero edité el archivo de httpd.conf donde agregué los dos host virtuales y modifiqué el puerto por el cual estaremos escuchando, poniendolo como el 8080. Después cree las carpetas referenciadas por DocummentRoot que están en www/httpd/docs/paloma y /www/httpd/docs/secundario
Finalmente reinicié el servicio en /init.d/ con httpd restart
A la hora que quiero checar que esté funcionando, abro un browser y pongo como direccion http://localhost:8080/ y me sale un mensaje de "unable to connect", la verdad estoy en el hoyo y no sé que es lo que estoy haciendo mal. Espero que alguien pueda ayudarme, lo agraecería infinitamente
October 31st, 2006 at 6:25 pm
Son vuestras configuraciones que al cambiarlas con respecto al post algo haceis mal. Mira si tienes un firewall o mira en que te confundiste. Con esa info que nos das poco se puede ayudar. Lo siento
November 10th, 2006 at 2:32 am
Necesito Ayuda Para Hacer Lo Siguiente:
Descripción general:
Suponer que vas a iniciar una empresa que proporcione servicios de hosting y alojamiento de páginas web a otras empresas y organizaciones. Para lo cual cuentas con un solo servidor, en el cual tendrás que configurar todos los servicios de red necesarios para poder ofrecer tus servicios, usando un sistema operativo Linux.
Los servicios de red que se configurarán son los siguientes:
Servicios LAMP (Linux-Apache-MySQL-PHP)
Servidor de correo electrónico, usando Sendmail ó Postfix u otro MTA; de igual manera se configurará los protocolos de acceso a correo POP3 o IMAP.
Servicio de correo electrónico vía cliente de correo como Outlook Express.
Servicio de correo electrónico vía Web, configurando Squirrelmail.
Servicio de transferencia de archivos FTP.
Servicio SAMBA para compartir archivos y directorios entre Linux y Windows.
Servicios CUPS como servidor de impresión en Linux.
Servicios de acceso remoto TELNET y SSH.
Servicio DHCP.
Servidor Proxy Squid.
Considerar 3 dominios, 1 principal y 2 dominios virtuales, con sus servicios correspondientes como DNS, servidor Web, servicio LAMP, servidor de correo y servidor FTP por cada uno de los dominios.
November 10th, 2006 at 3:45 pm
Buenas, Lo que tu dices, cuando contratas un server por norma te ofrecen un panel de control como puede ser plesk, directadmin y demás (De pago). Con ese panel das de alta ususarios, limite de transferencia, creacion de correos, espacio web, etc...
Lo que tu pones ahi de telnet, cups y demas,.. si es un server que ofreces hosting,... te sobran cups, telnet,.. y lo de outlook con que tengas el pop3 puesto ya te vale,.. eso tambien se activa en el centro de control que contrates,...
Resumiendo: O te lo montas tu todo y configuras manualmente todo o pones un Panel de control y lo administras (Mas rapido, comodo,... pero de pago), hay alguno gpl pero por ahora no llega a la calidad de plesk por ejemplo.
NOTA: No todas las distros son compatibles con los paneles de control.
Espero haberte orientado un poco :)
December 19th, 2006 at 2:28 am
Más de uno quiere sacar tajada de la buena fe por aquí :roll: (ejem montar empresa, linux para temas internos y windows para los clientes...)
December 21st, 2006 at 8:24 pm
Saludos a todos ¡¡
Tengo una gran duda, a ver si me podeis ayudar, quiero crear un servidor apache, q tenga instalado php y mysql, y conectarle una maquina como cliente, de manera q si yo tecleo en el internet explorer
http://localhost/prueba.php
tanto del servidor como del cliente, me muestre el resultado el resultado del archivo prueba.php.
Se puede hacer esto??
Nota: Todo es en una red local, sin tener acceso a internet, es para hacer mis pininos. Actualmente tengo una maquina con apache, mysql y php.
Gracias¡¡
December 22nd, 2006 at 12:49 am
Hombre,.. el problema es que localhost es el nombre que se le da a la dirección ip local, es decir tu maquina en si. Pero puedes cambiarlo fácilmente en el archivo /etc/hosts, es mas con ese archivo puedes aparentar tener tu dominio (Solo para ese ordenador claro esta)
Ejemplo:
192.168.1.34 localhost
127.0.0.1 www.busindre.com
127.0.0.1 www.mascachapas.com
127.0.0.1 miputopc
192.168.1.38 tuxpc
En el primero estoy diciéndole que localhost es otra maquina, tu por defecto lo debes tener en 127.0.0.1 (Tu maquina). Los demás es el ejemplo de dominio ficticio.
Pues eso, saludos
December 22nd, 2006 at 6:21 pm
Muchas gracias Busindre ¡¡
Voy a intentarlo, ya q tenga tiempo, ya q ahorita llega la family de lejos y hay q atenderlos, pero muchas gracias¡¡, la pregunta q te hice fue x q estoy haciendo una pagina, pero quiero dividirla en varias partes, en un servidor quiero colocar mi base de datos y a lo mejor uno q otro archivo php, pero en mi 2o servidor quiero colocar mis funciones y procedimientos, y en un 3er servidor quiero colocar imagenes.
Hay te va otra pregunta maestro, como le hago para hacer un tipo link,o un include q me muestre de un servidor ya sea una imagen o procedimientos o funciones de mis servidores( 2o y 3o), y si es seguro??, es por eso q te hice la pregunta de armar una red local, para poder trabajar con archivos remotos.
Gracias ¡¡
December 23rd, 2006 at 6:15 am
Pues eso puedes hacerlo de varias maneras, ponerlas en red sería necesario ya sea por ssh, ntsf, samba,.. Pero realmente yo pondría las funciones en la misma máquina que tiene instalado el php, es más rápido, cómodo y seguro.
Si sigues con tu idea lo mejor es meter las funciones en carpetas y compartirlas como prefieras montandolas en local... Pero ya te digo, mejor que no. En re pon la base de datos si quieres pero no código php.
Saludos
April 22nd, 2008 at 10:40 pm
Me funcionó...gracias.
September 20th, 2008 at 9:23 pm
No administro servidores, llegué aqui porque mi conexión de Personal al enviar un MMS me da el siguiente error "Could not connect to proxy (unable to locate host)", quisiera saber si es un error del servidor o me está indicando que yo no estoy llegando por un firewall.
Slds!
September 21st, 2008 at 1:33 am
Esto no tiene mucho que ver con el artículo, pero simplemente te dice que no conecta con el servidor. Puede ser por los parámetros de configuración, que no estén los correctos o un firewall que no te deje conectar. Como mensaje de error no identifica la causa, pero posiblemente sea tema de parámetros de configuración.
Saludos