httpd:无法可靠地确定服务器的标准域名,对ServerName使用127.0.0.1


172

我尝试在CentOS 5.0上重新启动Apache服务器,并收到以下消息:

httpd:无法可靠地确定服务器的标准域名,对ServerName使用127.0.0.1

这是/etc/hosts文件:

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时,我仍然收到第一条错误消息。


1
确保您编辑正确httpd.conf。通常ServerName xy很好。
KingCrunch'3

Answers:


95

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

host.server4-245.com

选择一个FQDN并将其都包含在您/etc/hosts所使用的IPv4和IPv6地址上的文件中(在您的情况下为localhost127.0.0.1),然后ServerName在您的httpd配置中进行更改以进行匹配。

/ 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

6
还要注意,您将要修改/ etc / sysconfig / network文件中的HOSTNAME条目以匹配您选择的名称。
Paul Stengel'3

2
嗯 我知道: 127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain 但是似乎linux也认为gondor.localdomain也不是FQDN。这是什么问题?我需要TLD吗?
亚当

嗨,我确实尝试了上述所有方法,但仍然遇到相同的错误,我不太了解这里缺少的内容。我的FQDN是ak.local.com,其设置方式与您的答案相同,但是我仍然遇到相同的问题。我正在OSX 10.10
AKFourSeven15年7

1
我发现:127.0.0.1 myserver myserver.mydom.com ...等<<无效127.0.0.1 myserver.mydom.com myserver ...等<<正常
马丁

208

如果您不在httpd.conf文件夹中/etc/apache2,则应该有apache2.conf-只需添加:

ServerName本地主机

然后重新启动apache2服务。


2
在运行多个虚拟主机的Ubuntu 12.04 LTS上完美运行。
Gor 2013年

3
在运行多个虚拟主机的Mac OS 10.7.5上完美运行。
DudeOnRock 2013年

1
在运行Virtualbox的Mac OS 10.7.5上工作
iWizard 2013年

3
在Centos 6.4上完美运行。
Kel Solaar

7
尽管httpd.conf位于/ etc / httpd / conf /中
gbarry

64

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

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

sudo nano /etc/apache2/httpd.conf

加: ServerName localhost

最后重启Apache服务器:

sudo /etc/init.d/apache2 restart

1
在CentOS 7中,路径将为/etc/httpd/conf/httpd.conf
Debashis

11

因此,尽管这个问题得到了回答和接受,但它仍然是搜索结果中的佼佼者,尽管提出了答案(经过大量研究),但我还是摸不着头脑,进一步深入研究。因此,这是我如何解决此问题的快速布局。

假设我的服务器是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. 编辑网络

    $ 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在于主机文件中包含了127.0.0.1以及静态IP地址192.168.1.150。在Ubuntu Server和CentOS上也是如此。


9

在httpd.conf中,搜索“ ServerName”。通常在Mac上默认情况下已将其注释掉。只需取消注释并填写它即可。确保在/ etc / hosts中还设置了名称/ ip组合。


谢谢,这很有帮助。httpd没有在/ etc / hosts中接收我的fqdn,并且我的主机名似乎配置正确。
Banjer

8

确保您编辑正确 httpd.conf文件,然后有关服务器域名不可靠的错误应该消失了(这是最常见的错误)。

要找到您的httpd.confApache配置文件,请运行:

apachectl -t -D DUMP_INCLUDES

然后编辑文件并取消注释或将ServerName行更改为:

ServerName localhost

然后通过以下方式重新启动您的Apache: sudo apachectl restart


1
“确保您正在编辑正确的htttpd.conf文件。”这对macOS很有帮助。我没有编辑正确的http.conf文件。谢谢。
阿斯梅(Ame),


3

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

  1. Include /etc/apache2/httpd.conf

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

  2. 在文件/etc/apache2/apache2.conf的末尾添加此行

    ServerName本地主机


1

通过将服务器主机名添加到/etc/apache2/httpd.conf文件和服务器主机名中,我已经在不同情况下解决了标准域名消息。 /etc/apache2/apache2.conf文件中,。

类型 hostname -f您的终端。该查询将返回您的主机名。

然后编辑/etc/apache2/httpd.conf文件(如果由于某种原因不存在,则创建该文件)并添加ServerName <your_hostname>

另外,我还可以通过添加ServerName <your_hostname>/etc/apache2/apache2.conf文件中。

如果一切顺利,当您重新启动Apache时,该消息将消失。


1

大多数答案都建议将添加ServerName localhost/etc/apache2/apache2.conf

但是引用Apache文档  :

此错误消息的存在还表明,Apache httpd无法通过对服务器的IP地址进行反向查找来获取标准主机名。尽管上述说明在任何情况下都将摆脱警告,但还是建议您修复名称解析,以便此反向映射起作用。

因此,添加这样的行/etc/hosts可能是更可靠的解决方案:

192.0.2.0  foobar.example.com  foobar

其中192.0.2.0是指定的服务器的静态IP地址foobar的内部example.com域。

一个人可以检查FQDN,例如

hostname -A

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


1

原来我有这个问题,这是因为我使用“制表符”来缩进行而不是空格。只是发布,以防万一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.