我有两个 IP 地址指向 DigitalOcean 上的服务器 Ubuntu 16.04。
对于一个 IP 地址,以下操作可以正常工作。
<VirtualHost 1.2.3.4:80>
ServerName www.mysite.com
DirectoryIndex index.php index.html
DocumentRoot /home/mysite.com
<Directory /home/mysite.com/>
Require all granted
Allowoverride ALL
</Directory>
</VirtualHost>
当我使用我的第二个 IP 地址添加另一个 VirtualHost 时
<VirtualHost 5.6.7.8:80>
ServerName www.mysite2.com
DirectoryIndex index.php index.html
DocumentRoot /home/mysite2.com
<Directory /home/mysite2.com/>
Require all granted
Allowoverride ALL
</Directory>
</VirtualHost>
这不起作用,相反,我看到的是 Ubuntu 默认的 index.html 页面。
我运行了 apache2ctl -S,这就是我看到的内容。
1.2.3.4:80 is a NameVirtualHost
default server www.mysite2.com (/etc/apache2/sites-enabled/mysite2.com.conf:1)
那么看起来 1.2.3.4 是 NameVirtualHost 而 5.6.7.8 不是?
所以我尝试设置
NameVirtualHost 5.6.7.8:80
但还是没运气。所以我想,也许我需要设置“Listen”指令。该指令在“ports.conf”中设置为
Listen 80
所以我尝试将其改为
Listen 1.2.3.4:80
Listen 5.6.7.8:80
没有运气。
但我确实通过执行以下操作使其工作
<VirtualHost *:80>
ServerName www.mysite2.com
DirectoryIndex index.php index.html
DocumentRoot /home/mysite2.com
<Directory /home/mysite2.com/>
Require all granted
Allowoverride ALL
</Directory>
</VirtualHost>
但那将是一种“黑客”式的工作方式,因为它只是......包罗万象?谢谢你的帮助!