好的,我有一台服务器,我想在上面安装几个应用程序,但我遇到了 vhost 配置问题。这是我的配置,我想得到一些关于我做错什么的指导...好的,第一个文件是 /etc/apache2/ports.conf
NameVirtualHost 184.106.111.142:80
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
然后我有 /etc/apache2/sites-available/somesite.com
<VirtualHost 184.106.111.142:80>
ServerAdmin [email protected]
ServerName somesite.com
ServerAlias www.somesite.com
DocumentRoot /srv/www/somesite.com/
ErrorLog /srv/www/somesite.com/logs/error.log
CustomLog /srv/www/somesite.com/logs/access.log combined
<Directory "/srv/www/somesite.com/">
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
当我访问 somesite.com 时,一切都运行正常,但当我添加另一个虚拟主机,假设它的名字是 anothersite.com 时。所以我有 /etc/apache2/sites-available/anothersite.com
<VirtualHost 184.106.111.142:80>
ServerAdmin [email protected]
ServerName anothersite.com
ServerAlias www.anothersite.com
DocumentRoot /srv/www/anothersite.com/
ErrorLog /srv/www/anothersite.com/logs/error.log
CustomLog /srv/www/anothersite.com/logs/access.log combined
<Directory "/srv/www/anothersite.com/">
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
然后我运行以下命令
>> sudo a2ensite anothersite.com
Enabling site anothersite.com.
Run '/etc/init.d/apache2 reload' to activate new configuration!
>> /etc/init.d/apache2 reload
* Reloading web server config apache2
...done.
但当我访问 anothersite.com 或 somesite.com 时,它们都关闭了。虚拟主机出了什么问题。可能是 NameVirtualHost 声明带有 ip 之类的原因...也许我对虚拟主机设置的理解不清楚。我不明白的是为什么这两个网站现在突然完全不工作了。如果能澄清一下,我将不胜感激
顺便说一下,我只修改了 anothersite.com 或 somesite.com,让它更具可读性
答案1
我测试了您的配置,一切正常。使用 apache2 -S 进行调试:
# . /etc/apache2/envvars && apache2 -S
VirtualHost configuration:
184.106.111.142:80 is a NameVirtualHost
default server somesite.com (/etc/apache2/sites-enabled/somesite.com:1)
port 80 namevhost somesite.com (/etc/apache2/sites-enabled/somesite.com:1)
port 80 namevhost anothersite.com (/etc/apache2/sites-enabled/anothersite.com:1)
Syntax OK
然后在浏览器或 CURL 中打开网站(wget 不设置 Host 标头):
# curl somesite.com
a
# curl anothersite.com
b