2010-02-23 61 views
3

我有這個網絡服務器有一個IP地址xxx.xxx.xx.x,我也有一個網站我想發佈,但我沒有任何域名爲我的網站呢。基於IP的VirtualHost和Apache

所以在我httpd-vhosts.conf文件我有這樣的設置:

<VirtualHost xxx.xxx.xx.x> 
    ServerName xxx.xxx.xx.x 
    DocumentRoot "C:\Sites\mysite" 
</VirtualHost> 

而且因爲我沒有一個領域我真的想使用的IP地址來達到我的網站,但我已經嘗試這樣做,它不工作。我想你應該在ServerName中設置一個服務器名稱,如標題所示。

有沒有什麼辦法讓我的網站通過我的IP地址公開,如果是的話我該怎麼做?

回答

4

嘗試

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot C:\Sites\mysite 
    ServerName xx.xx.xx.xx 
</VirtualHost> 

記住重新啓動Apache,

您可能還需要添加,

Listen xx.xx.xx.xx:80 
+0

謝謝,它的工作原理。 – Martin 2010-02-24 17:58:10

-1

這不是一個編程問題。

但無論如何,

設置虛擬主機爲*而不是一個特定的IP地址。我不認爲你需要服務器名稱。

+0

Thx爲您的答覆,我知道這不是一個編程問題,但我認爲這是提出這種問題的正確論壇。我想你的解決方案: 的 的DocumentRoot「C:\網站\ mysite的」 但我仍沒有得到我的網站,如果我輸入服務器的IP,我已經重新啓動Apache和檢查我的服務器是否響應ping。 – Martin 2010-02-23 14:18:06

+0

@Martin - serverfault.com是這類問題的正確論壇。 – 2010-02-23 14:47:19

+0

Thx Andy,現在我知道以後:D – Martin 2010-02-23 14:56:37

0

如果你只有這臺服務器上的一個網站,你不需要一個虛擬主機。只需正確設置DocumentRoot即可。 (聽0.0.0.0:80)還要確保Apache是​​偵聽所有IP地址

如果不適合你,從你的命令提示符下執行:

telnet xx.xx.xx.xx 80 
GET/

,看看你會得到什麼回來 - 你應該得到你的網站的默認頁面。

+0

感謝您的建議,但我確實運行了多個站點,並且它們的工作非常完美,因爲它們具有在「httpd-vhosts.conf」文件中緩存的域。但是這個不起作用,因爲我沒有域名,只有一個IP地址。 – Martin 2010-02-23 14:55:49

+0

這可能是因爲您不能混用基於名稱的虛擬主機和IP虛擬主機,除非您擁有基於名稱的主機共享的IP,並且爲您的基於IP的主機提供了另一個單獨的IP。您是否可以在現有的域名上敲出臨時的DNS名稱 - 例如test.yoursite.com? – 2010-02-23 15:15:04