我不断添加更多虚拟主机并启用它们,但所有站点始终使用 sites-available 中的默认虚拟主机
以下是默认设置,出于安全原因我只更改了 IP
<VirtualHost 167.889.88.88: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 /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/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>
这是我的其他网站,我将其命名为 some-site.net
<VirtualHost *:80>
ServerName some-site.net
DocumentRoot "/var/www/vhosts/somesite.com/http/"
<Directory "/var/www/vhosts/somesite.com/http/">
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
它打开了我的这个命令
sudo a2ensite some-site.net
Enabling site some-site.net.
Run '/etc/init.d/apache2 reload' to activate new configuration!
然后我重新加载
/etc/init.d/apache2 reload
* Reloading web server config apache2
...done.
但是当我访问 URL some-site.net 时,我得到的是默认 vhost 的索引页...我做错了什么
答案1
首先猜测一下,你需要名称虚拟主机语句在您的 httpd.conf 文件中。另外,作为健全性检查,我假设您有正确的块?
当你奔跑时你得到了什么apachectl -S
?
答案2
在第一个块中,您没有指定 ServerName,Apache 将传入请求与 IP 进行匹配。问题在于 IP 和基于名称的虚拟服务器配置的混合。
为了进一步排除问题,请在虚拟服务器指令中添加 ServerName 指令,如下所示。
虚拟主机 167.889.88.88:80
答案3
/etc/hosts
在文件中添加以下行:
localhost some-site.net