2013-04-23 130 views
0

我在我的WIN7筆記本電腦上運行XAMPP開發網站。現在我使用虛擬主機和修改後的主機文件,因此我可以通過此URL訪問我的網站「www.thisshouldbemysite.nl」。但它會從我的XAMPP服務器加載。虛擬主機上的xampp和外部設備訪問

對我來說,這是工作正常。我可以做我想做的事。但我也想從外部設備訪問此服務器,例如智能手機或平板電腦,以便我可以看到該網站在其他設備上的呈現方式。但在平板電腦瀏覽器中輸入我的XAMPP PC的IP地址會使我進入C:\xampp\htdocs目錄,我無法訪問C:\xampp\htdocs\thisshouldbemysite.nl目錄。

有沒有人有我如何配置我的服務器以同時工作(本地和遠程)的想法。遠程應該在同一個本地網絡!

在這裏你可以找到我目前的設置。

主機:

127.0.0.1 www.thisshouldbemysite.nl 

的httpd-vhosts.conf:

<VirtualHost *:80> 
    DocumentRoot C:\xampp\htdocs 
    ServerName localhost 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot C:\xampp\htdocs\thisshouldbemysite.nl 
    ServerName www.thisshouldbemysite.nl 
</VirtualHost> 
+0

您是否找到解決方案?我需要同樣的東西。 – Skuta 2013-10-31 15:47:13

+0

是的,我找到了解決方案,Tuan的答案是正確的爲我工作。 – Timo002 2013-10-31 15:55:30

回答

1

您是否嘗試爲您的虛擬主機這個配置?

<VirtualHost *:80> 
    DocumentRoot C:\xampp\htdocs\thisshouldbemysite.nl 
    ServerName localhost 
</VirtualHost> 
+0

我想嘗試一下,但是當我更改了我的httpd-vhosts.conf文件時,我的apache服務器不想再啓動了。撤消doensn't沒有幫助,所以我furst需要解決這個問題。您的建議可能有效,但我有多個站點作爲虛擬主機。所以如果這個工作,它將只適用於特定的網站。 – Timo002 2013-04-23 06:42:30

+0

奧克,你的解決方案的作品。但是,我需要訪問本地IP地址,任何重定向到www.thisshouldbemysite.nl不起作用。但基本上我可以從這開始。正如我所提到的,我的httpd-vhosts.conf文件包含更多的虛擬主機! – Timo002 2013-04-23 07:51:38

4

我要蓋幾件事情給你完整的圖片,也許你更好的瞭解過程,那麼你可以驗證你的問題,並因此找到答案的每個部分。

我們需要了解的第一件事是您的瀏覽器在輸入域名時知道該往哪裏去。您的瀏覽器將檢查您的本地主機文件,然後您的本地DNS緩存,然後向DNS服務器發出請求。 DNS服務器可以由您的ISP/DHCP自動設置,也可以在互聯網連接設置中手動設置。因此,向域名提出請求後,您的瀏覽器/操作系統會按順序檢查這些地址是否符合條目。如果找不到條目,​​則域名將不會解析。

DNS服務器可以有不同種類的條目。它可以告訴你域名託管的位置,它可以告訴你一個子域名在哪裏,它可以指向一個域名到另一個DNS服務器......它是一個靈活的多用途地點,域名可以指向任何地方。另外,根據爲域名設置的DNS條目類型,瀏覽器會自動知道是否需要向另一臺DNS服務器詢問域名指向的位置,或者是否它需要查找最終結果。 DNS服務器設置不當可能導致用戶陷入DNS環路 - 一個DNS指向另一個DNS,第二個DNS指向第一個DNS。這些東西很容易弄清楚。

主機文件基本上就像本地手動設置的類似DNS的系統。它允許你說「any.domain」在「any-ip-address」。通過這種方式,您可以在本地重寫或忽略其他DNS資源。這對本地人很有用,但如果你想要通過互聯網或許多設備訪問內容,我強烈建議使用DDNS服務,我將在下面進行介紹。

--- Apache的虛擬主機文件---

在虛擬主機文件我設置默認的虛擬主機。這樣,如果我鍵入我的IP或沒有明確定義的虛擬主機的域名,我仍然可以從我的網絡服務器獲得某種響應。這只是我的偏好,但完全沒有必要。設置默認值後,我明確定義了要提供的域/子域。

了NameVirtualHost *:80

##############本地主機

的ServerAdmin網站管理員@本地 的DocumentRoot 「d:/ XAMPP/htdocs中」 服務器名本地主機

<Directory "D:/xampp/htdocs"> 
    AllowOverride All 
    Order Allow,Deny 
    Allow from all 
    Require all granted 
</Directory> 

######## othersite.local.whatever

絲氨酸verAdmin站長@本地 的DocumentRoot 「d:/xampp/othersite.local.whatever」 服務器名othersite.local.whatever 的AllowOverride所有 訂購允許,拒絕 允許所有 要求所有授予

後您的VHost文件被保存,重啓apache。如果apache啓動,然後自動停止運行,那麼你的apache config/Vhosts文件可能有錯誤,請仔細檢查你的工作,在保存你所做的每個更改之後嘗試啓動apache,直到它工作。

--- Windows主機文件---

除非你有一個DNS服務器設置,你將要修改Windows HOSTS文件爲了要告訴你的機器othersite.local.whatever點到Apache服務器。這個文件做的是在本地將一個域名指向一個IP地址。它不會影響其他計算機,只有這臺機器也在運行您的服務器。

的hosts文件位於C:/窗/ SYSTEM32 /司機/ etc/hosts中

根據您的Windows許可,您可能需要複製hosts文件到桌面首先,用記事本或打開它您的fav文本編輯器,進行修改,保存並將其複製回原始位置。在新行,添加新條目:

127.0.0.1 othersite.local.whatever

後您保存您的主機文件回C:/窗/ SYSTEM32 /驅動器的/ etc /你現在應該能夠訪問othersite.local.whatever在服務器機器上沒有問題。如果您有其他本地Windows計算機,則可以修改其主機文件以指向服務器的IP地址(通常類似於192.168.1.xx),以便這些計算機也可以通過others.local.whatever訪問虛擬主機。

192.168.1。?? othersite.local.whatever

---通過替代方法解決你的問題---

根據您的需求是什麼,你可以做兩件事情。

1)修改所有windows電腦上的vhost文件,做一些關於如何在其他設備上做的研究。如果所有設備都認爲othersite.local.whatever指向您的服務器,則您的服務器應該使用正確的虛擬主機頁面進行響應。這就是它如何在本地網絡或廣域網/互聯網上工作的天氣。

2)設置本地DNS服務器,將所有設備指向您的DNS,並在您的DNS中添加一個條目以指向該域到您的服務器。如果您以前從未做過這件事,這是一項複雜的任務,但您可能會發現它很有用。

3)建立動態DNS(DDNS)。這個有點複雜,但實際上很容易。它確實可以幫助你打開你的選擇。

這裏是如何工作的 - 你的家庭互聯網連接的WAN IP可能改變不時 - 一個動態的IP通過DHCP服務,從您的ISP分配。如果您關閉並重新啓動互聯網調制解調器,您的IP可能會發生變化。這是不好的,因爲如果您有一個外部DNS或鏈接以某種方式指向您的IP,並且您的IP發生更改,因爲您的電源已關閉或打開,或者DHCP使用新IP更新了IP租約,則會被切斷從你的服務器。所以爲了解決這個問題,我們有一個叫做動態DNS的東西。您註冊一個DDNS服務(其中許多服務是完全免費的),您可以在PC上運行一個小型的DDNS程序。 DDNS程序每隔幾分鐘檢查一次IP地址,並使用IP更新DDNS服務器。如果您的IP更改,那麼在幾分鐘內DNS服務器會收到更改通知,並且您將重新訪問您的服務器。

爲了得到這一點,你需要設置你的本地互聯網連接轉發到端口80上的傳入連接的所有設置(您的網站大概就80運行,除非你改變了它)到Web服務器。將服務器的本地IP地址設置爲靜態IP地址(因此它不會在本地網絡中更改,您知道類似192.168.1.100或任何適合您需要的內容),並修改您的Internet網關/調制解調器/路由器以將端口80上的所有內容到您的服務器電腦。

我喜歡用免費的DDNS服務,稱爲無IP(http://no-ip.com/)。它是免費的,簡單可靠。創建一個帳戶,選擇一個子域名 - 你可以使用something.bounceme.net或其他預定義的免費DDNS名稱。選擇名稱後,在服務器PC上安裝DDNS/No-IP程序。現在something.bounceme.net將永遠轉到您的家庭IP。如果您正確設置端口轉發,端口80上的任何內容都會自動轉到您的網絡服務器。

現在最後一步是獲得一個正常的域名指向你的家,而不是IP的something.bounceme.net。你可以支付非IP來做一些花哨的東西,或者你可以以自由的方式做到這一點,我將在這裏解釋。

我上次使用Godaddy作爲域名註冊商,並且所有事情都發生了很大的變化,您可能需要致電Godaddy或您的域名註冊商,並詢問您的服務在何處/如何進行。

首先是,你需要一個域名。假設你擁有homesite.com,並且讓我們說你想讓laptop.homesite.com指向你的家庭網絡服務器。

對於域homesite.com,添加類型CNAME的DNS記錄與「筆記本電腦」的關鍵,你的DDNS名稱「something.bounceme.net」的值。這將使laptop.homesite.com將解決您的家庭IP地址。合理?現在,當你鍵入laptop.homesite.com時,DNS會告訴它檢查something.bounceme.net,這將解析爲你的家庭IP。

CNAME條目有一些限制。您不能僅將「homesite.com」轉發給您的DDNS IP。你基本上必須使用一個子域名項,如筆記本電腦或家庭或類似的東西。但是,您可以做的一件事是使用「子域」條目WWW,以便www.homesite.com將指向您的家庭IP。如果您使用Godaddy,您將獲得一個免費有限的託管帳戶,並在您的域名上顯示Godaddy廣告。您可以將此帳戶設置爲「homesite.com」,並在其中放置一些重定向代碼以將用戶發送到「www.homesite.com」。這樣,人們輸入homesite.com並自動發送到www.homesite.com。

我希望這是有道理的。

讓我們來回顧一下 - 設置您的服務器靜態IP,設置端口轉發,以便端口80指向您服務器的本地IP,設置DDNS(如http://www.no-ip.com)並安裝其DDNS程序,設置CNAME與您的域名註冊商www.yoursite.com指向您的家庭服務器(CNAME www - > your-ddns-url.bounceme.net)。現在,您應該可以通過www.yoursite.com從全球任何地方,從本地互聯網連接或星巴克訪問您的服務器。

您還可以爲FTP服務器(通常爲21)設置端口轉發,以遠程編輯您的網站或訪問您的家庭文件。當你可以遠程訪問你的家用電腦時,你可以做各種各樣的事情。

我希望這篇短文將幫助您理解在所有設備上訪問apache VHost所必需的每個部分。我喜歡使用DDNS設置/選項,因爲您不需要爲每個設備或類似設備設置主機文件。這就像訪問一個常規網站!

問題或意見歡迎。我從字面上把這一切都寫出來,我希望它有幫助。