我有一个运行 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 [email protected]
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 />部分,这似乎没用。