1

我正在嘗試使用Wordpress爲我的組織構建一個門戶。
我已經安裝了windows server 2008 R2,Wampserver 2.5和WP 3.9.1。
我遵循Wampserver的指南爲網站設置虛擬主機。無法從內部網訪問的Wordpress門戶

在服務器機器上一切正常。地址欄中的本地主機顯示了Wamp的主頁面,並且該網站的鏈接僅顯示該網站的名稱(沒有本地主機),當我單擊它時它會正常加載。

問題是,當試圖從Intranet上的客戶機訪問它時。
當在地址欄中寫入服務器機器的名字時,我得到了Wamp的主頁,沒有任何問題。

該網站的鏈接僅顯示該網站的名稱,當我點擊它時,我收到一條錯誤消息,指出瀏覽器在該地址找不到服務器。

當我在地址欄中手動寫入服務器機器的名稱/站點名稱時,我確實進入了該站點,但它已損壞 - 只有文本顯示。

我的設置有什麼問題?

這是httpd.conf中的相關部分:

<Directory "c:/wamp/www/"> 
    Options Indexes FollowSymLinks 
    AllowOverride all 
</Directory> 

# Virtual hosts 
Include conf/extra/httpd-vhosts.conf 

而且這是在httpd-vhosts.conf文件:

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www" 
    ServerName localhost 
    ServerAlias localhost 
    <Directory "c:/wamp/www"> 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www/hista-portal" 
    ServerName hista-portal 
    <Directory "c:/wamp/www/hista-portal"> 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 
  • 這是另一個問題,我問延續,但由於情況發生了變化,在RiggsFolly的幫助下,有很多編輯工作太複雜,無法繼續下去,我認爲最好開始一個新編輯工作。我希望我沒有違反網站的規則。
+0

我會檢查防火牆... – doublesharp

+0

謝謝,但服務器上沒有防火牆。 – ubonozur

回答

0

好吧,

現在有一些讓你運行和正確的方式方法。

快速和非常骯髒的方式:

Apache會第一VHOST在虛擬主機文件設置爲默認,這就是爲什麼目前你所得到的WAMPServer網頁,而不是你的WP網站。所以,你可以只扭轉VHOST定義的順序,如: -

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www/hista-portal" 
    ServerName hista-portal 
    <Directory "c:/wamp/www/hista-portal"> 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www" 
    ServerName localhost 
    ServerAlias localhost 
    <Directory "c:/wamp/www"> 
     AllowOverride All 
     Require local 
    </Directory> 
</VirtualHost> 

現在,當您使用路由器WAMP的IP地址,你會得到的WP站點。

更好的方法

獲取與DYNDNS或NOIP免費帳戶,還有其他的。

這將讓你創建一個假域名類似[email protected]

然後創建一個新的虛擬主機定義與服務器名稱如下所示: -

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www" 
    ServerName localhost 
    ServerAlias localhost 
    <Directory "c:/wamp/www"> 
     AllowOverride All 
     Require local 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www/hista-portal" 
    ServerName hista-portal 
    <Directory "c:/wamp/www/hista-portal"> 
     AllowOverride All 
     Require local 
     # maybe also allow access from your local lan 
     Require ip 192.168.1 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "c:/wamp/www/hista-portal" 
    ServerName hista-portal.dyndns.net 
    <Directory "c:/wamp/www/hista-portal"> 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 

注意我所做的本地主機Require local因此,任何意外訪問都將返回錯誤,這有助於通過只使用IP地址的用戶在您的網站上嗅探來阻止驅動器。

請記住,您正在使用Name Based Virtual Hosting,所以Apache真的希望看到瀏覽器發送的名稱與其虛擬主機定義中的ServerNames匹配。

+0

好吧,第一種方法可以很好地工作,但必須補充說,網站地址也必須在WP設置中進行更改,這意味着網站名稱必須被刪除,並且只應保留服務器計算機名稱(http:// h-在這種情況下門戶)。 爲什麼第二種方法更好? – ubonozur

+0

只是因爲您的用戶可以使用可記憶的名稱而不是IP地址。此外,方法一意識到Apache回落到默認值而不是去一個特定的站點地址,所以它只適用於一個網站,而不是如果你有2個網站你想服務。你是對的,該網站將不得不被修復,以使用新的域名正常工作,但這是記錄在WP網站上。基本上,如果你想服務一個WordPress站點,最好先從VirtualHosts開始,而不是稍後添加它。 – RiggsFolly

+0

其實我使用的是網站名稱而不是IP地址。 但我已經把我的網站變成了一個多站點,現在由於名字混亂,我無法進入子網站。 所以你說第二種方法應該解決這個問題? – ubonozur

0

問題解決。

呃,有點兒。

在WordPress的網站設置中,我在開始時向站點URL添加了服務器機器的名稱。
現在,在客戶端機器上,當我在地址欄中寫入服務器名稱/站點名稱時,我到達該站點並且工作完美。
之前,我剛剛獲得文字導致圖像的所有鏈接都是錯誤的。

主Wamp網站中的鏈接仍然是錯誤的,但我並不真的需要它。 我要給門戶網站用戶直接鏈接到網站。