2010-11-03 12 views
7

Sto sviluppando un sito e quello è gestito da due. uno sono io e l'altro è il designer che accede da diverse macchine attraverso LAN.accesso a un host virtuale locale da LAN esterna come host virtuale come http: // sitename anziché http: // nome sistema/sitename

Conf: php, apache, windows xp, mysql.

root documento: d: \ www \ xampp \ htdocs. tutti i progetti sono sotto questo aspetto come sottocartelle.

Ho configurato l'host virtuale in modo che non acceda a tutti i progetti come http://localhost/foldername ma solo come http://foldername.

Ma per il progettista che è nell'altro sistema che deve accedere come http://computername/foldername

Per esempio mi permetta di essere lavorare in un libro paga di progetto. lo accederò come http://payroll ma il mio designer accederà a questo come http://computername/payroll.

Quello che voglio fare è che il designer acceda allo stesso modo in cui accedo. ovvero http://payroll.

in modo che nel sistema di progettazione quando il nome del server è il libro paga, voglio che venga indirizzato alla mia macchina e quindi alla cartella del progetto. quindi se dà http://payroll allora l'applicazione nel mio sistema dovrebbe funzionare per lui.

Ho impostato il file hosts nel sistema di progettazione per puntare alla mia macchina. quindi questo lavoro è fatto e quando dà il libro paga appare il mio http://localhost.

Cosa devo fare in modo che il progettista possa accedere al mio progetto come http://payroll dal suo sistema?

risposta

7

Il progettista deve aggiungere il vostro indirizzo IP a ogni sitename alla sua hosts file come senza di essa il suo navigatore web non saprà dove cerca il sito. Potrebbe apparire come questo:

12.34.56.78 sitename1 
12.34.56.78 sitename2 
12.34.56.78 repeat.for.each.sitename 
... 

Questo potrebbe essere sufficiente se i vostri VirtualHosts non sono vincolati a un indirizzo IP specifico. Questo non avrebbe funzionato:

NameVirtualHost 127.0.0.1:80 

<VirtualHost 127.0.0.1:80> 
    ServerName sitename1 
    ... 
</VirtualHost> 

dovrebbe essere:

NameVirtualHost *:80 

<VirtualHost *:80> 
    ServerName sitename1 
    ... 
</VirtualHost> 

In questo modo Apache servirà il sito chiamato sitename ogni volta che vede una richiesta con il nome host sitename e non importa se è venuto dallo stesso computer o no.

+0

per me sta visualizzando l'accesso vietato ma altri computer sono stati in grado di accedere. –

+0

stavo avendo il mio file hosts come 127.0.0.1 sitename1 che diceva accesso vietato dove come per gli altri utenti ha funzionato perché hanno dato il mio IP nel loro file hosts. come se dessi solo il mio sitename 192.168.1.20 allora funziona. ma tutti gli altri vhost dove mostrare l'accesso è proibito ... quindi se il mio ip cambia allora penso che potrei cambiare il mio file hosts e sostituire l'ip con il nuovo IP e lo stesso per gli altri. non c'è nessun altro modo? –

+0

funziona quando sostituisco tutto il 127.0.0.1 con il mio ip per tutte le istanze nel file conf. e ho bisogno di fare altre modifiche per farlo funzionare come mi aspettavo. Comunque. grazie. –

1

può mettere nei suoi \ windows \ system32 \ drivers \ file etc \ hosts:


1.2.3.4 payroll 

Dove 1.2.3.4 deve essere sostituito con il numero IP del sistema.

L'Apache siti abilitati \ file 000-default devono iniziare con:


<VirtualHost *:80> 
     # from http://www.iliveinperego.com/2008/05/automatic-vhost-with-apache/ 
     RewriteEngine on 
     RewriteCond %{HTTP_HOST} ^(.+)$ 
     RewriteRule ^(.+)$ /%1$1 
    ... 
</VirtualHost> 
+0

sì funziona ma il mio sito in una sottocartella della cartella radice e voglio che il progetto di sottocartella di eseguire e non la cartella radice –

+0

scusa, ho frainteso per dire che avevi risolto il setup di Apache per questo. Aggiornerò la risposta a breve –

+0

le riscritture non hanno funzionato per te? questo è il modo in cui ho impostato il mio sistema, quindi so che può funzionare. –

Problemi correlati