![启动 httpd 服务时出错“无法使用 localhost.localdomain 可靠地确定服务器的完全限定域名](https://linux22.com/image/125845/%E5%90%AF%E5%8A%A8%20httpd%20%E6%9C%8D%E5%8A%A1%E6%97%B6%E5%87%BA%E9%94%99%E2%80%9C%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20localhost.localdomain%20%E5%8F%AF%E9%9D%A0%E5%9C%B0%E7%A1%AE%E5%AE%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%AE%8C%E5%85%A8%E9%99%90%E5%AE%9A%E5%9F%9F%E5%90%8D.png)
我一直在关注 LibreNMS 的安装https://www.linuxhelp.com/how-to-install-librenms-in-centos/。一切都很好,直到我终于启动了 httpd 服务。它吐出这个错误。我已经配置了虚拟主机。这是确切的错误消息:
无法使用 localhost.localdomain 可靠地确定服务器的完全限定域名。全局设置服务器名称指令。
我将在下面的 httpd 配置文件中显示虚拟主机。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /opt/librenms/html/
ServerName linuxhelp1.com
CustomLog /opt/librenms/logs/access_log combined
ErrorLog /opt/librenms/logs/error_log
AllowEncodedSlashes On
<Directory "/opt/librenms/html/">
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
答案1
请注意linuxhelp1.com就是一个例子。您需要实际的 ServerName,在本例中为 hyper-v IP 地址 (xxxx)。
将您的 hyper-v IP 地址 (xxxx) 添加到虚拟主机容器内部和外部的 ServerName 指令中。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /opt/librenms/html/
ServerName x.x.x.x
CustomLog /opt/librenms/logs/access_log combined
ErrorLog /opt/librenms/logs/error_log
AllowEncodedSlashes On
<Directory "/opt/librenms/html/">
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
参考本文关于使用 NameVirtualHost 和 ServerName。另外,请使用您使用的 Apache 版本更新您的问题,因为 1、2.2 和 2.4 的配置都不同。
例如,从 2.2 升级到 2.4 时你会注意到
除了发出警告之外,NameVirtualHost 指令不再有任何作用。出现在多个虚拟主机中的任何地址/端口组合都被隐式地视为基于名称的虚拟主机。
答案2
该消息只是默认选择的通知,可以忽略。要解决生成它的问题,请在任何定义的主机/站点之外的主配置文件中添加一个ServerName
指令。
EG - 在我的 Debian 系统上,主要配置是/etc/apache2/apache2.conf
- 在最底部只需添加
ServerName somehost.example.com
当然,该 FQDN 不需要位于 DNS 中,只需位于/etc/hosts
指向 127.0.1.1(或您喜欢的任何环回)的计算机文件中即可。
IIRC Redhat/CentOS/etc 将所有内容都保存在一个大httpd.conf
文件中 - 如果是这种情况,请在开始定义实际命名主机之前添加这一行。