2011-08-21 2 views
8

Obecnie próbuję skonfigurować host wirtualny (poddomeny) mojego serwera HTTP Apache, aby mógł być dostępny z innym komputerem w mojej sieci LAN. Obecna konfiguracja Apache'a z PHP i MySQL działa lokalnie na tej samej maszynie fizycznej.Dostęp do serwera wirtualnego (poddomeny) Apache z innego komputera w sieci LAN

Mam dwie konfiguracje Virtual Host (development i cms) działające na innym niż domyślny porcie 50080. Maszyna serwera ma adres IP 10.0.0.10. Z tej samej maszynie fizycznej, mogę uzyskać dostęp do Two Virtual Host przy użyciu:

development.localhost:50080 
cms.localhost:50080 

z innej maszynie fizycznej, mogę uzyskać dostęp do katalogu głównego serwera przy użyciu:

10.0.0.10:50080 

Ale nie mogę, czy nie wiem, jak uzyskać dostęp do hosta wirtualnego z innej maszyny. Próbowałem coś takiego:

development.10.0.0.10:50080 
cms.10.0.0.10:50080 

Ale nie wydają się działać.

Oto jak mój plik httpd-vhosts wygląda następująco:

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> 

czytam niektóre inne placówki i na forum Apache, ale nie ma w tym przypadku dokładny.

Zastanawiam się, jak mogę uzyskać dostęp do hosta wirtualnego (subdomeny) z innego komputera i zachować ten sam port, jeśli to możliwe.

góry dzięki

Odpowiedz

25

OK, zorientowaliśmy się, oto konfiguracja jeśli ktoś szuka to:

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

Maszyna A (A Pache Serwer HTTP) 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> 

gospodarze:

127.0.0.1 development.localhost 

127.0.0.1 alias 
127.0.0.1 development.alias 

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

Maszyna B (automat gościnny): gospodarze:

10.0.0.10 alias 
10.0.0.10 development.alias 

Z drugiej maszynie, powinieneś być w stanie uzyskać dostęp do "alias" i "development.alias"

+2

Wielkie dzięki za to, była świetna pomoc! Kilka notatek bocznych dla każdego, który jest nadal występują problemy z tym: gdzie „Feniks” jest napisane powyżej, użyłem alias i to działało (nie wiem, dlaczego użyto feniks gdy alias jest wszędzie ...) Ponadto może być konieczne aby utworzyć regułę dla lokalnej zapory sieciowej na porcie, którego używasz, zanim zobaczysz swoją witrynę za pośrednictwem sieci. Musiałem stworzyć wyjątek dla portu 80 (nie użyłem 50080) –

+0

Można również dodać mod_proxy, a następnie ProxyPass/dev http: //development.localhost/ i ProxyReversePass/dev http: // development.localhost/a następnie użyj http: // public-ip/dev/ –

+0

Czy można to zrobić bez edytowania pliku hosta klienta? –

2

chyba że jestem brakuje czegoś, trzeba albo skonfigurować wpisy DNS, lub dodać wpisy do pliku/etc/hosts każdego komputera z dostępem do serwera.

localhost to pozycja, która domyślnie znajduje się w pliku/etc/hosts każdego użytkownika, zawsze wskazuje 127.0.0.1. Bez dodawania wpisu/etc/hosts, nie istnieje developer.localhost, a prefiks adresu IP z subdomeną w ogóle nie działa.

+0

złożyć Moi gospodarze na maszynie Apache mają wpis: 127.0.0.1 development.localhost Druga maszyna jeszcze nic, co mam dodać? – YTKColumba

+0

To by działało, tak. –

0

Dla Named Virtual Hosts należy użyć nazwy hosta lub nazwy domeny, aby połączyć się z serwerem apache. To nie działa z ips.

Możesz wstawić wpis do swojego /etc/hosts w drugim systemie.

+0

złożyć Moi gospodarze na maszynie Apache mają wpis: 127.0.0.1 development.localhost Druga maszyna jeszcze nic, co mam dodać? – YTKColumba

+0

Na przykład ' development.server', a następnie dodaj serwer' ServerAlias ​​development.server' do konfiguracji apache. –

3

Proponujemy następujące zmiany (dodać linie 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> 

Restart Apache w celu zapewnienia zmiany odniosły skutek.

Następnie na drugim komputerze należy dodać niestandardowy wpis dns dla tych nowych nazw domen. Jeśli jest to system Windows, edytuj plik c:\windows\system32\drivers\etc\hosts. Jeśli to Linux, edytuj/etc/hosts.Tak czy inaczej add:

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

Teraz na drugim komputerze powinien być w stanie uzyskać dostęp do następujących adresów:

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

I wydają się być uzyskiwanie błąd, gdy próbuje uruchomić Apache z konfiguracją dałeś ... – YTKColumba

+0

Dostaję błąd podczas próby uruchomienia Apache, więc wydaje się, aby w konfiguracji z pliku httpd-vhostów. BTW, pierwszy wpis wskazuje na katalog główny, nie dodałem wpisu "cms", ponieważ uważam, że jest taki sam jak wpis "development". – YTKColumba

+0

Co to jest błąd apache w dzienniku? –

0

przy użyciu Putty SSH + tunel, a więc o 127,0. 0,1 na moim serwerze, udało mi się uzyskać dostępu do subdomen, wykonując następujące czynności na mojej stronie serwera:

# 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 

nie zmienić plik hosta zdalnego komputera i działa jak czar