我不需要在本地使用命名主机来工作,因为我主要需要的是外部网络访问(我已经设置了端口转发),但我仍然想知道为什么我不能用我定义的服务器名称访问虚拟主机。
我正在使用 Raspberry Pi(Raspbian,基于 Debian),但是在 VMWare VM 上的 Ubuntu 18 上遇到了同样的问题,无论是在众多操作系统还是 Apache 安装上。
在我的 Apache.conf 中我添加了:
ServerName localhost
NameVirtualHost *:8010
在我的 virtualhost.conf 中我有:
<VirtualHost *:8010>
ServerAdmin [email protected]
DocumentRoot /var/www/html/MySite/public
ServerName www.think.com
ServerAlias www.think.com
DirectoryIndex index.php
ErrorLog /var/log/apache2/concrete5-error_log
CustomLog /var/log/apache2/concrete5-access_log common
</VirtualHost>
(我尝试过使用和不使用 ServerAlias)
在我的 ports.conf 中我添加了:
Listen 8010
最后在我的主机中我有:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspberrypi
127.0.0.3 www.think.com
127.0.0.2 gci.example.com
我可以通过以下方式访问我的网站http://本地主机:8010/毫无问题,但是http://www.think.com无论我做什么,都会重定向到 Apache2 默认页面。即使我完全按照 Ubuntu 教程操作,我也无法让命名站点正常工作(https://ubuntu.com/tutorials/install-and-configure-apache#1-overview)。
我也禁用了默认站点,并尝试打开默认站点,两者都得到了上述相同的结果。
任何帮助都将不胜感激!
编辑:更新名称以使问题更清晰
答案1
如果不是默认的 80,则需要指定端口号。
http://www.think.com:8010/
另一种方法是让 Apache 监听端口 80。但是,根据您的描述,Apache 已在监听该端口。为什么不将您的虚拟主机添加到该 Apache,并使用
<VirtualHost *:80>