2017-06-05 28 views
0

我在CentOS 7機器上運行Apache服務器。我們在/var/www/html/site1下創建了一個新的Drupal站點 訪問http://<server-ip>/site1產生了site1正確。如今,爲了爲新客戶提供測試環境,我不得不爲一個新的Drupal站點創建虛擬主機(我們稱之爲site2)。Apache上Drupal站點的意外虛擬主機行爲

所以我創建了下面的虛擬主機規則:

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName site2.dev 
     DocumentRoot /var/www/html/site2 
     <Directory /> 
       Options FollowSymLinks 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

之後,我創建的網站的文件夾/var/www/html/site2和安裝的Drupal。訪問http://site2.dev收益率site2正確。

問題是,如果我現在訪問http://<server-ip>/site1,site2顯示。

我找不出什麼可能是問題。這兩個網站的路徑和數據庫完全不同,所以在我看來,這兩個網站不應該互相影響。

因爲我今天從字面上定義了我的第一個虛擬主機,我想知道是否有人可以幫我解釋這個問題。提前致謝!

+1

這是Apache中重定向你的請求到現場1或2個檔,不管數據庫或什麼的。因此,如果你告訴apache將所有(*)http請求指向site2目錄,則通常只能看到site2。 –

回答

2

好吧,我錯過了你的問題,並認爲你有2個域名。

你的站點1是否通過IP訪問,沒有子目錄?在這種情況下: 更改DocumentRoot的指向到/ var/www/html等,然後這兩個網站將IP/SITE1和IP/SITE2進行訪問。

如果您是通過媒體鏈接網址IP/site1的訪問site1的,那麼你什麼都沒有改變,可能沒有新的虛擬主機至極點才SITE2目錄訪問IP /站點2 ...。

+0

我不確定我是否明白_first first virtualhost_的含義。沒有爲_site1_定義虛擬主機,我只是通過IP訪問它,例如「http:// 10.10.10.10/site1」。 – GigiSan

+0

那麼你肯定有一個默認情況下在Apache的conf定義(查找httpd.conf文件)。如果您在這種情況下無法訪問apache conf,則可以創建一個只指向第二個站點url而不指向*的虛擬主機。 –

+0

更正了我的答案,希望它對您有所幫助。 –

0

基於Laurent的答案,這是我最後使用的配置:

# So all IP only paths continue to work 
<VirtualHost *:80> 
     DocumentRoot /var/www/html/ 
     ServerName 10.10.10.10   # Server's IP 
     <Directory /var/www/html/> 
       Options FollowSymLinks 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

# So site2.dev points to its folder 
<VirtualHost *:80> 
     DocumentRoot /var/www/html/site2 
     ServerName site2.dev 
     <Directory /var/www/html/site2> 
       Options FollowSymLinks 
       AllowOverride All 
     </Directory> 
</VirtualHost>