Apache-2.2

Apache2 預設覆蓋虛擬主機

  • February 9, 2014

我有一個執行 apache2 的 Ubuntu 12.10 LTS 伺服器,安裝了簡單的 wordpress。我在 /etc/apache2/sites-available 中創建了虛擬主機,並使用 a2ensite 來啟用它。這兩天一切正常。

今天早上我醒來查看網站,似乎虛擬主機根本不工作。它一直轉到 apache2 中的預設站點。

這是我的配置:

預設

<VirtualHost *:80>
   ServerAdmin webmaster@localhost

   DocumentRoot /var/www
   <Directory />
       Options FollowSymLinks
       AllowOverride None
   </Directory>
   <Directory /var/www/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
       AllowOverride None
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
       Order allow,deny
       Allow from all
   </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog ${APACHE_LOG_DIR}/access.log combined

   Alias /doc/ "/usr/share/doc/"
   <Directory "/usr/share/doc/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.0/255.0.0.0 ::1/128
   </Directory>

</VirtualHost>

虛擬主機:domain.com

<VirtualHost *:80>
    ServerAdmin me@domain.com
    ServerName domain.com
    ServerAlias www.domain.com
    DocumentRoot /srv/www/domain.com/public_html/
    ErrorLog /srv/www/domain.com/logs/error.log
    CustomLog /srv/www/domain.com/logs/access.log combined
</VirtualHost>

如您所見,我有兩個獨立的配置,沒有衝突。但是 apache2 不斷恢復到預設站點而不是基於名稱的虛擬主機。我的 /etc/hosts 文件是正確的,並且具有指向公共 IP 的 FQDN 和主機名。這只是在一夜之間發生的。

我在 domain.com 上執行了 a2dissite,apache2 重新載入,然後在 domain.com 上執行了 a2ensite,但沒有任何結果。我最終不得不 a2dissite 預設配置。一旦我這樣做了,domain.com 網站就很好地提出了我的 wordpress 網站。

知道為什麼會這樣嗎?我已經執行 apache2 和 nginx 多年,並且從未遇到過虛擬主機問題。這個有點奇怪。我不應該為我的其他虛擬主機工作而禁用預設站點。

有什麼想法嗎?

嘗試添加

伺服器名稱本地主機

進入預設虛擬主機。您也可以暫時禁用預設虛擬主機中的*< Directory />*部分,這似乎沒用。

引用自:https://serverfault.com/questions/574300