我拼命地尝试设置一个基于名称的虚拟主机以供在我的本地网络中使用,花了几个小时。
这是我的配置,路径是正确的
/etc/apache2/vhosts.d/hausfux.conf
<VirtualHost 192.168.40.44:80>
ServerName hausfux.dev
DocumentRoot "/srv/www/htdocs/hausfux/devLocal"
ErrorLog /var/log/apache2/hausfux_error.log
CustomLog /var/log/apache2/hausfux_access.log common
</VirtualHost>
我告诉自己这里。
然后我将这行添加到我的/etc/hosts文件。
192.168.40.44 hausfux.dev
我也在我的 Windows 客户端主机文件中添加了相同的行。
然后我用 重新启动了 apache2 systemctl restart apache2
。
如果我进入http://hausfux.dev
我的 Windows 客户端浏览器,那么它会自动更改为https://hausfux.dev
并且失败。
如果我尝试像以前一样使用完整绝对链接打开项目,例如,http://192.168.40.44/hausfux/devLocal
我现在会收到状态错误代码 500(服务器内部错误)。如果我删除虚拟主机并重新启动 apache2,则该站点将再次正常运行。
我究竟做错了什么?
PS: 没有错误/var/log/apache2/hausfux_error.log
更新
如果我使用以下配置,那么当我在 Windows 客户端的浏览器中输入服务器 IP 地址时,它就会起作用(http://192.168.40.44)。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName hausfux.dev
DocumentRoot "/srv/www/htdocs/hausfux/devLocal"
ErrorLog /var/log/apache2/hausfux_error.log
CustomLog /var/log/apache2/hausfux_access.log common
<Directory "/srv/www/htdocs/hausfux/devLocal">
Require all granted
</Directory>
</VirtualHost>
但我的目标是只输入一个名称,例如http://hausfux.dev
而不是 IP 地址。这在 OpenSUSE 中可行吗,还是我应该使用其他操作系统,例如 Ubuntu?
更新:
ping 我的 DNS 服务器得到的响应:
PING 192.168.40.20 (192.168.40.20) 56(84) 字节数据。来自 192.168.40.20 的 64 字节:icmp_seq=1 ttl=64 时间=0.126 毫秒来自 192.168.40.20 的 64 字节:icmp_seq=2 ttl=64 时间=0.149 毫秒
答案1
在我更改虚拟主机名后,它就可以正常工作了。我想我已经在 Windows 客户端 WAMP 上使用过相同的 VHost 名称,并且它仍然在配置中的某个地方。
在 WAMP 中,您可以抑制虚拟主机。也许我只是抑制了它,而不是删除它。