2011-08-21 24 views
8

Attualmente sto cercando di configurare il Virtual Host (sottodominio) del mio server Apache HTTP in modo che possa essere letta con un altro computer sulla LAN. L'attuale configurazione di Apache con PHP e MySQL funziona localmente sulla stessa macchina fisica.Apache Virtual Host (sottodominio) l'accesso con diversi computer della LAN

Così ho due configurazione Virtual Host (sviluppo e CMS) in esecuzione su una porta non predefinita di 50080. La macchina del server hanno un IP di 10.0.0.10. Dalla stessa macchina fisica, posso accedere al due host virtuale utilizzando:

development.localhost:50080 
cms.localhost:50080 

Da una diversa macchina fisica, posso accedere alla radice del server utilizzando:

10.0.0.10:50080 

ma non posso o fare non so come accedere all'host virtuale dalla macchina diversa. Ho provato qualcosa di simile:

development.10.0.0.10:50080 
cms.10.0.0.10:50080 

Ma non sembrano funzionare.

Ecco come il mio file httpd-vhosts assomiglia:

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> 

ho letto alcuni degli altri post qui e il forum di Apache, ma non c'è caso esatto per questo.

Mi chiedevo come posso accedere al Virtual Host (sottodominio) da un'altra macchina e mantenere la stessa porta, se possibile.

Grazie in anticipo

risposta

25

Ok, ho capito, qui ci sono la configurazione se qualcun altro è alla ricerca di this:

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

Macchina 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> 

eserciti:

127.0.0.1 development.localhost 

127.0.0.1 alias 
127.0.0.1 development.alias 

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

macchina B (Guest Machine): padroni di casa:

10.0.0.10 alias 
10.0.0.10 development.alias 

Dalla seconda macchina, si dovrebbe essere in grado di accedere con "alias" e "development.alias"

+2

Mille grazie per questo, è stato di grande aiuto! Un paio di note a margine per chiunque abbia ancora problemi con questo: dove "phoenix" è scritto sopra, ho usato l'alias e ha funzionato (non so perché phoenix è stato usato quando l'alias è ovunque ...) Anche tu potresti aver bisogno per creare una regola per il firewall locale sulla porta che stai usando prima di vedere il tuo sito web sulla rete. Ho dovuto creare un'eccezione per la porta 80 (non ho usato 50080) –

+0

È anche possibile aggiungere mod_proxy e quindi ProxyPass/dev http: //development.localhost/ e ProxyReversePass/dev http: // development.localhost/e quindi utilizzare http: // public-ip/dev/ –

+0

È possibile farlo senza modificare il file host del client? –

2

A meno che non mi manca qualcosa, avrete bisogno di entrambi i set up voci DNS, o aggiungere voci al file/etc/hosts di ogni computer che accede al server.

localhost è una voce presente nel file di tutti/etc/hosts per impostazione predefinita, che punta sempre a 127.0.0.1. Senza aggiungere una voce/etc/hosts, developer.localhost non esiste e il prefisso di un indirizzo IP con un sottodominio non funzionerà affatto.

+0

Il mio file hosts sul computer Apache ha la voce: 127.0.0.1 development.localhost La seconda macchina non ha ancora niente, cosa dovrei aggiungere? – YTKColumba

+0

Funzionerebbe, sì. –

0

Per Named Virtual Hosts è necessario utilizzare un nome host o domainname per connettersi al vostro server apache. Non funziona con ips.

Si potrebbe inserire una voce nel vostro /etc/hosts sul secondo sistema.

+0

Il mio file hosts sul computer Apache ha la voce: 127.0.0.1 development.localhost La seconda macchina non ha ancora niente, cosa dovrei aggiungere? – YTKColumba

+0

' development.server' per esempio, quindi aggiungere il' ServerAlias ​​development.server' alla configurazione di apache. –

3

Suggerisco di fare la seguente modifica (aggiungere le righe 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> 

Riavviare Apache per garantire le modifiche abbiano effetto.

Quindi sul secondo computer è necessario aggiungere una voce dns personalizzata per questi nuovi nomi di dominio. Se è Windows, modifica il file c:\windows\system32\drivers\etc\hosts. Se è Linux, modifica/etc/hosts.In entrambi i casi aggiungere:

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

Ora sul vostro secondo computer si dovrebbe essere in grado di accedere ai seguenti URL:

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

Mi sembra di ricevere un errore quando provo ad avviare Apache con la configurazione che hai dato ... – YTKColumba

+0

Ricevo un errore durante il tentativo di avviare Apache, quindi sembra che la configurazione con il file httpd-vhosts. BTW, la prima voce punta alla directory principale della directory, non ho aggiunto la voce "cms" poiché sono identica alla voce "sviluppo" – YTKColumba

+0

Qual è l'errore di apache nel registro? –

0

Utilizzando uno SSH + tunnel di Putty, e avere così un 127.0. 0.1 sul mio server, sono riuscito a accedere ai miei sottodomini facendo quanto segue sul mio lato server:

# 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 

non ho cambiato il file host del computer remoto, e funziona come un fascino

Problemi correlati