【问题标题】:httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerNamehttpd:无法可靠地确定服务器的完全限定域名,使用 127.0.0.1 作为 ServerName
【发布时间】:2012-03-21 10:30:54
【问题描述】:

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

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

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

【问题讨论】:

  • 确保您编辑了正确的httpd.conf。通常ServerName xy 就可以了。

标签: linux apache centos


【解决方案1】:

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

host.server4-245.com

选择一个 FQDN 并将其包含在您正在使用的 IPv4 和 IPv6 地址上的 /etc/hosts 文件中(在您的情况下,localhost127.0.0.1),并在您的 httpd 配置中更改您的 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/sysconfig/network 文件中的 HOSTNAME 条目以匹配您选择的名称。
  • 嗯。我有: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 上运行
  • 我发现:127.0.0.1 myserver myserver.mydom.com ...等
【解决方案2】:

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

【讨论】:

  • 谢谢,这很有帮助。 httpd 没有在 /etc/hosts 中获取我的 fqdn,而且我的主机名似乎配置正确。
【解决方案3】:

在初始安装 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

【讨论】:

  • 在 CentOS 7 中,路径为 /etc/httpd/conf/httpd.conf
【解决方案4】:

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

服务器名称本地主机

然后重启apache2服务。

【讨论】:

  • 在运行多个虚拟主机的 Ubuntu 12.04 LTS 上完美运行。
  • 在运行多个虚拟主机的 Mac OS 10.7.5 上完美运行。
  • 在运行 Virtualbox 的 Mac OS 10.7.5 上工作
  • 在 Centos 6.4 上完美运行。
  • 在 Centos 6(云版本)上完美运行,尽管 httpd.conf 在 /etc/httpd/conf/
【解决方案5】:

在 Apache httpd.conf 文件中:

ServerName: 127.0.0.1

【讨论】:

    【解决方案6】:

    因此,虽然这个问题得到了回答并被接受,但它仍然是一个热门搜索结果,尽管已经列出了答案(经过大量研究),但让我摸不着头脑并进一步挖掘。所以这里是我如何解决问题的快速布局。

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

    1. 编辑hosts file

      $ 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 上也是如此。

    【讨论】:

      【解决方案7】:

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

      1. Include /etc/apache2/httpd.conf

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

      2. /etc/apache2/apache2.conf文件末尾添加这一行

        服务器名称本地主机

      【讨论】:

        【解决方案8】:

        通过将我的服务器主机名添加到 /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 时,消息就会消失。

        【讨论】:

          【解决方案9】:

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

          但引用Apache documentation

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

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

          192.0.2.0  foobar.example.com  foobar
          

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

          可以检查 FQDN,例如与

          hostname -A
          

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

          【讨论】:

            【解决方案10】:

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

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

            apachectl -t -D DUMP_INCLUDES
            

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

            ServerName localhost
            

            然后通过sudo apachectl restart重新启动你的apache

            【讨论】:

            • “确保您正在编辑正确的 htttpd.conf 文件,”这在 macOS 上帮助了我。我没有编辑正确的http.conffile。谢谢。
            【解决方案11】:

            原来我遇到了这个问题,这是因为我使用“制表符”来缩进行而不是空格。只是发布,以防它帮助任何人。

            【讨论】:

              【解决方案12】:

              如果您使用ServerName localhost 编辑了/etc/apache2/httpd.conf,您可能正在编辑错误的文件。我找到的所有答案都指向那个标准的 httpd.conf。经过一番摸索,我找到了一个很好的答案here

              要找到正确的 httpd.conf 文件,请使用

              apachectl -t -D DUMP_INCLUDES
              

              我发现我的实际上是/usr/local/etc/httpd/httpd.conf

              使用您喜欢的编辑器注释掉以 ServerName 开头的行(即删除之前的 #),并将域名替换为适当的 - 本地环境应该可以使用

              ServerName localhost
              

              我希望这可以帮助更多可能被卡住的人。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-08-19
                • 2022-07-18
                • 2011-08-16
                • 2016-12-25
                • 1970-01-01
                • 2018-05-19
                • 2021-05-29
                • 2020-08-30
                相关资源
                最近更新 更多