我愚蠢地弄乱了我的 Apache https.file(我想是的)。我试图使用 Webmin 安装一个新的虚拟服务器。我尝试使用 Virtualmin,但不知何故,它对 Apache 做了一些事情,因为它不会重新启动,并显示以下错误消息:
Failed to start apache :
* Starting web server apache2
[Fri Feb 07 15:13:37 2020] [warn] NameVirtualHost xxx.xxx.xxx.xxx:80 has no VirtualHosts
[Fri Feb 07 15:13:37 2020] [warn] NameVirtualHost xxx.xxx.xxx.xxx:xxxx has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address xxx.xxx.xxx.xxx:xxxx
no listening sockets available, shutting down
Unable to open logs
...fail!
我删除了虚拟主机,但仍然没有成功。我检查了我的 httpd.conf 文件,它是空的。再次尝试设置新的虚拟主机后,httpd.conf 文件完全丢失了。
我现在需要弄清楚如何让 Apache 再次运行。我可以移除并删除 Apache 然后重新安装它吗?这会生成一个新的 http.conf 文件吗?其中至少有一些我可以编辑的内容,并让 Apache 再次启动吗?
如果这一切听起来很简单,那么我很抱歉,但多年来我没有对我的服务器做太多的事情,现在对它的修修补补让我陷入困境。
答案1
错误NameVirtualHost ... has no VirtualHosts
通常发生在.conf
文件不完整的情况下。我看到的一个常见问题是端口被排除在标签之外<VirtualHost>
。
.conf
检查存在的各种文件/etc/apache/sites-enabled
并查看<VirtualHost>
标签。如果您看到任何与以下模式之一匹配的文件:
<VirtualHost>
<VirtualHost *>
<VirtualHost 80>
更改为:
情况 | |
---|---|
<VirtualHost *:80> |
非 HTTPS 流量(可能仅包含重定向) |
<VirtualHost *:443> |
启用 HTTPS 的流量(这需要 SSL 证书定义) |
距离你提出这个问题已经过去了将近一年,所以你现在可能已经解决了这个问题。话虽如此,我希望这对将来遇到同样问题的人有所帮助。