httpd:无法可靠地确定服务器的完全限定的域名,使用ServerName的127.0.0.1

我试图在CentOS 5.0上重启我的Apache服务器,并得到这个消息:

httpd:无法可靠地确定服务器的完全限定的域名,使用ServerName的127.0.0.1

这是/etc/host file

 127.0.0.1 server4-245 server4-245.com localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 

这里是/etc/sysconfig/network文件:

 NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=server4-245 

我也在Apache的httpd.conf文件中有这个:

 ServerName localhost 

但是,当我重新启动Apache时,仍然收到第一条错误消息。

您的主机文件不包含有效的FQDN, localhost也不包含FQDN。 FQDN必须包含主机名部分以及域名部分。 例如,以下是有效的FQDN:

 host.server4-245.com 

select一个FQDN并将其包含在您的/etc/hosts IPv4 / IPv6地址(在您的情况下, localhost127.0.0.1 )上的/etc/hosts文件中,然后在您的httpdconfiguration中将您的ServerName更改为匹配。

/ etc / hosts中:

 127.0.0.1 localhost.localdomain localhost host.server4-245.com ::1 localhost.localdomain localhost host.server4-245.com 

httpd.conf中:

 ServerName host.server4-245.com 

如果你在文件夹/etc/apache2没有httpd.conf ,你应该有一个apache2.conf – 只需添加:

ServerName localhost

然后重新启动apache2服务。

在Apache服务器初始安装之后,在Ubuntu 12.04 (Precise Pangolin)上重新启动Apache服务时出现以下错误,

解决scheme非常简单。 只需将ServerName指令添加到/etc/apache2/httpd.conf

 sudo nano /etc/apache2/httpd.conf 

添加: ServerName localhost

最后重启Apache服务器:

 sudo /etc/init.d/apache2 restart 

所以当这个答案被接受的时候,它仍然是一个顶级的search结果,尽pipe(经过大量的研究)的答案,让我挠脑袋,进一步挖掘。 所以这里是我如何解决问题的快速布局。

假设我的服务器是myserver.myhome.com,我的静态IP地址是192.168.1.150:

  1. 编辑主机文件

     $ sudo nano -w /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 myserver.myhome.com myserver 192.168.1.150 myserver.myhome.com myserver ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ::1 myserver.myhome.com myserver 
  2. 编辑httpd.conf

     $ sudo nano -w /etc/apache2/httpd.conf ServerName myserver.myhome.com 
  3. 编辑networking

     $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com 
  4. 校验

     $ hostname (output) myserver.myhome.com $ hostname -f (output) myserver.myhome.com 
  5. 重新启动Apache

     $ sudo /etc/init.d/apache2 restart 

它出现的差异是包括myserver.myhome.com同时在hosts文件中的127.0.0.1以及静态IP地址192.168.1.150。 在Ubuntu服务器和CentOS上也一样。

在httpd.conf中,search“ServerName”。 它通常在Mac上被默认注释掉。 只需取消注释并填写即可。请确保您还在/ etc / hosts中设置了名称/ IP组合。

在Apache httpd.conf文件中:

 ServerName: 127.0.0.1 

有两种方法可以解决这个错误:

  1. Include /etc/apache2/httpd.conf

    在文件/etc/apache2/apache2.conf中添加上面的行

  2. 在文件/etc/apache2/apache2.conf的最后添加这行:

    ServerName localhost

我通过将服务器主机名添加到/etc/apache2/httpd.conf文件和/etc/apache2/apache2.conf文件来解决完全限定的域名消息。

在terminal中inputhostname -f 。 这个查询将返回你的主机名。

然后编辑/etc/apache2/httpd.conf文件(或者在出于某种原因不存在的情况下创build它)并添加ServerName <your_hostname>

或者,我也可以通过将ServerName <your_hostname>添加到/etc/apache2/apache2.conf文件中来消除该消息。

如果一切顺利的话,当你重新启动Apache时,消息将会消失。

大多数答案build议只将ServerName localhost添加到/etc/apache2/apache2.conf

但是引用Apache文档 :

此错误消息的出现还表明Apache httpd无法通过对您的服务器的IP地址进行反向查找来获取完全限定的主机名。 虽然上述说明在任何情况下都会摆脱警告,但修复名称parsing也是一个好主意,以便反向映射能够正常工作。

因此,将这样的行添加到/etc/hosts可能是一个更强大的解决scheme:

 192.0.2.0 foobar.example.com foobar 

其中192.0.2.0是example.com域中名为foobar的服务器的静态IP地址。

人们可以检查FQDN例如

 hostname -A 

hostname --all-fqdn快捷方式hostname --all-fqdn )。