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

use*_*351 165 linux apache centos

我试图在CentOS 5.0上重新启动我的Apache服务器并收到此消息:

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

这是/etc/hosts文件:

127.0.0.1    server4-245    server4-245.com    localhost.localdomain localhost
::1        localhost6.localdomain6 localhost6
Run Code Online (Sandbox Code Playgroud)

这是/etc/sysconfig/network文件:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=server4-245
Run Code Online (Sandbox Code Playgroud)

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

ServerName localhost
Run Code Online (Sandbox Code Playgroud)

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

rie*_*rsn 205

如果你没有httpd.confin文件夹/etc/apache2,你应该有apache2.conf - 只需添加:

ServerName localhost

然后重启apache2服务.

  • 在Centos 6(云版本)上工作得很好,虽然httpd.conf在/ etc/httpd/conf /中 (7认同)
  • 在运行多个虚拟主机的Mac OS 10.7.5上完美运行. (3认同)
  • 在Centos 6.4上完美地工作. (3认同)
  • 在运行多个虚拟主机的Ubuntu 12.04 LTS上完美运行. (2认同)

Pau*_*gel 90

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

host.server4-245.com
Run Code Online (Sandbox Code Playgroud)

选择一个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
Run Code Online (Sandbox Code Playgroud)

httpd.conf中:

ServerName host.server4-245.com
Run Code Online (Sandbox Code Playgroud)

  • 另请注意,您需要修改/ etc/sysconfig/network文件中的HOSTNAME条目以匹配您选择的名称. (6认同)
  • 嗯.我有:`127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain`但似乎linux并不认为gondor.localdomain也是FQDN.这有什么问题?我必须拥有顶级域名吗? (2认同)
  • 我发现: 127.0.0.1 myserver myserver.mydom.com ... etc << 不起作用 127.0.0.1 myserver.mydom.com myserver ... etc << 起作用 (2认同)

riz*_*zon 63

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

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

sudo nano /etc/apache2/httpd.conf
Run Code Online (Sandbox Code Playgroud)

加: ServerName localhost

最后重启Apache服务器:

sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 在 CentOS 7 中,路径将是 /etc/httpd/conf/httpd.conf (2认同)

小智 10

因此,虽然这个问题得到了回答和接受,但它仍然作为一个顶级的搜索结果出现了,但是经过详细研究后得出的答案让我摸不着头脑,进一步深入挖掘.所以这里是我如何解决问题的快速布局.

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

  1. 编辑hosts文件

    $ 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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 编辑httpd.conf

    $ sudo nano -w /etc/apache2/httpd.conf
    
    ServerName myserver.myhome.com
    
    Run Code Online (Sandbox Code Playgroud)
  3. 编辑网络

    $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com
    
    Run Code Online (Sandbox Code Playgroud)
  4. 校验

    $ hostname
    
    (output) myserver.myhome.com
    
    $ hostname -f
    
    (output) myserver.myhome.com
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重启Apache

    $ sudo /etc/init.d/apache2 restart
    
    Run Code Online (Sandbox Code Playgroud)

似乎差异包括myserver.myhome.com127.0.0.1以及hosts文件中的静态IP地址192.168.1.150.在Ubuntu Server和CentOS上也一样.


Spi*_*der 8

在httpd.conf中,搜索"ServerName".它通常在Mac上默认注释掉.只需取消注释并填写即可.确保在/ etc/hosts中也设置了名称/ ip组合.


ken*_*orb 6

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

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

apachectl -t -D DUMP_INCLUDES
Run Code Online (Sandbox Code Playgroud)

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

ServerName localhost
Run Code Online (Sandbox Code Playgroud)

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

  • “确保您正在编辑正确的 htttpd.conf 文件,”这在 macOS 上对我很有帮助。我没有编辑正确的“http.conf”文件。谢谢。 (3认同)