2011-08-21 16 views
8

Actualmente estoy tratando de configurar el Servidor Virtual (Subdominio) de mi Servidor HTTP Apache para que se pueda acceder con otra computadora en mi LAN. La configuración actual de Apache con PHP y MySQL funciona localmente en la misma máquina física.Acceso de Apache Virtual Host (Subdominio) con diferente computadora en LAN

Tengo dos configuraciones de host virtual (desarrollo y cms) ejecutándose en un puerto no predeterminado de 50080. La máquina del servidor tiene una IP de 10.0.0.10. De la misma máquina física, puedo acceder a los dos host virtual usando:

development.localhost:50080 
cms.localhost:50080 

desde una máquina física diferente, puedo acceder a la raíz del servidor usando:

10.0.0.10:50080 

, pero no puedo ni hacer no sabe cómo acceder al host virtual desde la máquina diferente. Intenté algo como:

development.10.0.0.10:50080 
cms.10.0.0.10:50080 

Pero parece que no funcionan.

Así es como mi archivo httpd-vhosts se parece a:

NameVirtualHost *:50080 
<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

He leído algunos de los otros post aquí y el foro de Apache, pero no hay caso exacto para esto.

Me preguntaba cómo puedo acceder al host virtual (subdominio) desde otra máquina y mantener el mismo puerto si es posible.

Gracias de antemano

Respuesta

25

Ok, lo he descubierto, he aquí la configuración si alguien más está buscando esto:

============================================ ===================================

Máquina A (A pache HTTP Server): httpd-vhost:

NameVirtualHost *:50080 

<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
    ServerAlias alias <!-- Added --> 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ServerAlias development.phoenix <!-- Added --> 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

hosts:

127.0.0.1 development.localhost 

127.0.0.1 alias 
127.0.0.1 development.alias 

================== =============================================== ==============

máquina B (equipo invitado): anfitriones:

10.0.0.10 alias 
10.0.0.10 development.alias 

A partir de la segunda máquina, que deben ser capaces de acceder con "alias" y "development.alias"

+2

¡Muchas gracias por esto, fue de gran ayuda! Un par de notas secundarias para cualquiera que todavía tenga problemas con esto: donde "phoenix" está escrito arriba, usé alias y funcionó (no estoy seguro de por qué se usó Phoenix cuando el alias está en todas partes ...) También es posible que necesite para crear una regla para su firewall local en el puerto que está utilizando antes de ver su sitio web a través de la red. Tuve que crear una excepción para el puerto 80 (no utilicé 50080) –

+0

También podría agregar mod_proxy y luego ProxyPass/dev http: //development.localhost/ y ProxyReversePass/dev http: // development.localhost/y luego use http: // public-ip/dev/ –

+0

¿Es posible hacer esto sin editar el archivo de host del cliente? –

2

A menos que me falta algo, usted necesita configurar las entradas de DNS, o añadir entradas a la archivo/etc/hosts de cada equipo que accede al servidor.

localhost es una entrada que existe en el archivo/etc/hosts de todos por defecto, siempre apuntando a 127.0.0.1. Sin agregar una entrada/etc/hosts, developer.localhost no existe, y el prefijo de una dirección IP con un subdominio no funcionará en absoluto.

+0

Mi archivo de hosts en la máquina Apache tiene la entrada: 127.0.0.1 development.localhost La segunda máquina no tiene nada todavía, ¿qué debo agregar? – YTKColumba

+0

Eso funcionaría, sí. –

0

Para Named Virtual Hosts necesita usar un nombre de host o un nombre de dominio para conectarse a su servidor apache. No funciona con ips.

Puede insertar una entrada en su /etc/hosts en su segundo sistema.

+0

Mi archivo de hosts en la máquina Apache tiene la entrada: 127.0.0.1 development.localhost La segunda máquina no tiene nada todavía, ¿qué debo agregar? – YTKColumba

+0

' development.server' por ejemplo, y luego agregue el' ServerAlias ​​development.server' a su configuración de apache. –

3

sugiero hacer el siguiente cambio (añadir las líneas ServerAlias):

NameVirtualHost *:50080 
<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
    ServerAlias cms.myserver.com 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ServerAlias development.myserver.com 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

Reinicie Apache para asegurar que los cambios surtan efecto.

Luego en su segunda computadora necesita agregar una entrada dns personalizada para estos nuevos nombres de dominio. Si es Windows, edite el archivo c:\windows\system32\drivers\etc\hosts. Si es Linux, edite/etc/hosts.De cualquier manera add:

10.0.0.10 development.myserver.com 
10.0.0.10 cms.myserver.com 

Ahora en su segundo equipo que debe ser capaz de acceder a las siguientes direcciones URL:

http://development.myserver.com:50080 
http://cms.myserver.com:50080 
+0

Parece que recibo un error al intentar iniciar Apache con la configuración que me dio ... – YTKColumba

+0

Recibo un error al intentar iniciar Apache, por lo que parece ser la configuración con el archivo httpd-vhosts. Por cierto, la primera entrada apunta a la raíz del directorio, no agregué la entrada "cms" ya que supongo que será la misma que la entrada "desarrollo" – YTKColumba

+0

¿Cuál es el error de Apache en el registro? –

0

El uso de un túnel SSH + masilla, y por lo tanto tienen un 127,0. 0,1 en mi servidor, pude acceder a mis subdominios haciendo lo siguiente en mi lado del servidor:

# nano /etc/hosts 

127.0.0.1 localhost.localdomain localhost 
127.0.0.1 sub1.domain.com sub2.domain.com sub3.domain.com sub4.domain.com 

que no cambiaba el archivo de host del equipo remoto, y funciona como un encanto

Cuestiones relacionadas