Apache-2.2
Apache2 預設覆蓋虛擬主機
我有一個執行 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 />*部分,這似乎沒用。