Apache 配置错误 AH00558:无法可靠地确定服务器的完全限定域名

2023-11-17

介绍

阿帕奇AH00558: Could not reliably determine the server's fully qualified domain name当 Apache 未配置全局变量时,会生成消息ServerName指示。该消息主要用于提供信息,AH00558 错误不会阻止 Apache 正确运行。

在本教程中,您将学习如何使用中描述的方法检测 AH00558 消息如何排除常见的 Apache 错误教程位于本系列的开头。您还将学习如何设置ServerName指令来解决该消息。

如果您已经确定您的 Apache 服务器受到 AH00558 消息的影响并且您想跳过故障排除步骤,则设置全局ServerName指示本教程末尾的步骤解释了如何解决该消息。

使用故障排除systemctl

排除故障时的第一步AH00558: Could not reliably determine the server's fully qualified domain name消息是使用以下命令检查 Apache 的状态systemctl。输出来自systemctl在许多情况下将包含解决消息所需的所有信息。

在 Ubuntu 和 Debian 衍生的 Linux 发行版上,运行以下命令来检查 Apache 的状态:

Ubuntu 和 Debian 系统
  1. sudosystemctl 状态 apache2.service-l--无寻呼机

在 Rocky Linux、Fedora 和 Red Hat 衍生系统上,使用以下命令检查 Apache 的状态:

Rocky 和红帽系统
  1. sudosystemctl 状态 httpd.service-l--无寻呼机

The -l标志将确保systemctl输出一行的全部内容,而不是替换为省略号 ()对于长线。这--no-pagerflag 会将整个日志输出到屏幕上,而无需调用类似的工具less一次只显示一个屏幕内容。

您应该收到类似于以下内容的输出:

Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Wed 2020-07-29 14:30:03 UTC; 33min ago Process: 34 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 46 (apache2) Tasks: 55 (limit: 2344) CGroup: /system.slice/apache2.service ├─46 /usr/sbin/apache2 -k start ├─47 /usr/sbin/apache2 -k start └─48 /usr/sbin/apache2 -k start Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server... Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.

包含 AH00558 消息的突出显示行是重要的一行。本质上,它通知您 Apache 无法找到有效的ServerName指令在其配置文件中,因此它将使用它检测到的第一个 IP 地址。在此示例中,它是服务器的公共 IP 地址:172.17.02。如果您对 AH00558 消息进行故障排除,则检测到的 IP 地址可能不同,或者可能是人类可读的 DNS 名称。

If your systemctl输出包含任何 IP 地址或主机名的自动检测值,请跳到本教程的最后一部分,设置全局ServerName指示解决问题。在该部分中,您将使用安全的默认值配置 ApacheServerName使用 IP 地址的值localhost: 127.0.0.1.

If your systemctl输出不指示可用于的值ServerName指令,本教程的下一部分将解释如何检查systemd记录使用journalctl找到 AH00558 消息。

使用故障排除journalctl

要检查systemdApache 的日志,您将使用journalctl命令。调用时journalctl,有两个特定标志可以帮助您在存在大量日志条目时找到特定消息。

您将添加到的第一个标志journalctl调用是--since today旗帜。它将限制命令的输出,仅记录从当天 00:00:00 开始的条目。使用此选项将有助于限制检查错误时需要检查的日志条目的数量。

您将使用的第二个标志是相同的--no-pager您使用的选项systemctl,它将立即将整个日志输出到您的屏幕上。

在 Ubuntu 和 Debian 衍生系统上,运行以下命令:

  1. sudo日志控制-uapache2.service--since今天——没有寻呼机

在 Rocky Linux、Fedora 和 Red Hat 衍生系统上,使用以下命令检查日志:

  1. sudo日志控制-uhttpd.服务--since今天——没有寻呼机

如果您的 Apache 服务器正在生成 AH00558 消息,请查看journalctl命令输出如下所示:

Output
-- Logs begin at Wed 2020-07-29 14:30:02 UTC, end at Wed 2020-07-29 14:45:03 UTC. -- . . . Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server... Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.

输出的第二行是 AH00558 消息。该行包含服务器的公共 IP 地址,这是 Apache 在运行时自动检测并设置为默认值的地址。通过此消息确认 AH00558 错误,您可以继续执行设置全局ServerName指示解决问题。

否则,下一节将解释如何使用以下命令诊断 AH00558 错误消息:apachectl命令。

使用故障排除apachectl

An AH00558: Could not reliably determine the server's fully qualified domain name可以使用 Apache 检测到错误apachectl公用事业。和apachectl您可以在重新加载或重新启动 Apache 之前捕获此类消息,并且可以避免搜索systemctl and journalctl日志来定位错误。

要检查 Apache 配置中是否有 AH00558 消息,请运行以下命令:

  1. sudoapachectl 配置测试

如果您的服务器受到 AH00558 错误消息的影响,您应该会收到如下输出:

Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message Syntax OK

与本教程前面的部分一样,使用了systemctl and journalctl要查找 AH00558 消息,包含 AH00558 消息的行(在上一示例中突出显示)是重要的。再次注意IP地址172.17.0.2此示例中的内容可能与您的服务器上的有所不同。

本教程的下一部分将解释如何设置ServerName指令来解决 AH00558 错误消息。

设置全局ServerName指示

解决一个AH00558: Could not reliably determine the server's fully qualified domain name错误消息,您需要添加ServerName指令到您的 Apache 配置。阿帕奇使用ServerName指令将传入的 HTTP 请求映射到 IP 地址或 DNS 主机名,使用VirtualHost指令为了使用单个服务器处理多个站点的请求。

错误消息指出全局ServerName还应该设置指令。这样做将确保 Apache 可以优雅地处理未映射到某个映射的传入请求。VirtualHost不会产生额外的错误。

为了最大程度地兼容各种 Apache 配置,请使用以下值127.0.0.1为您的全球ServerName指示。如果需要,您可以使用与服务器配置相对应的不同 IP 地址或 DNS 名称,但使用它是最安全的127.0.0.1.

在 Ubuntu 和 Debian 衍生系统上,打开/etc/apache2/apache2.conf使用root权限的文件nano或您喜欢的文本编辑器:

  1. sudo nano/etc/apache2/apache2.conf

添加一行包含ServerName 127.0.0.1到文件末尾:

/etc/apache2/apache2.conf
. . .
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ServerName 127.0.0.1

在 Rocky Linux、Fedora 和 Red Hat 衍生系统上,打开/etc/httpd/conf/httpd.conf使用root权限的文件nano或您喜欢的文本编辑器:

  1. sudo nano/etc/httpd/conf/httpd.conf

Add the ServerName 127.0.0.1行到文件末尾:

/etc/httpd/conf/httpd.conf
. . .
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
ServerName 127.0.0.1

完成后保存并关闭文件。如果你用过nano,按CTRL + X, Y, 进而ENTER.

添加后ServerName指令到您的配置,运行apachectl测试配置是否有效。

  1. sudoapachectl 配置测试

一个成功的apachectl configtest调用应该产生如下输出:

Output
Syntax OK

您现在可以使用适当的方法重新加载 Apache 的配置systemctl reload适用于您的 Linux 发行版的命令。

在 Ubuntu 和 Debian 衍生系统上,运行以下命令:

  1. sudosystemctl 重新加载 apache2.service

在 Rocky Linux、Fedora 和 Red Hat 衍生系统上,使用此命令重新加载 Apache 的配置:

  1. sudosystemctl 重新加载 httpd.service

重新加载 Apache 后,AH00558 错误消息将不再出现在日志中。您可以通过运行这三个命令中的任何一个来确认消息已被静音systemctl, journalctl, or apachectl本教程中演示的命令。

结论

在本教程中您了解了AH00558: Could not reliably determine the server's fully qualified domain name错误消息。虽然这些消息不会阻止 Apache 运行,但可以通过设置全局变量来解决ServerName指示。

您学习了如何使用以下命令搜索 AH00558 错误消息systemctl, journalctl, and apachectl命令。最后,您学习了如何在各种 Linux 发行版上编辑 Apache 配置以静默消息。

如果您想了解有关 Apache 如何使用的更多信息ServerName指令,Apache 文档关于基于名称的虚拟主机更详细地解释了该指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache 配置错误 AH00558:无法可靠地确定服务器的完全限定域名 的相关文章

随机推荐

  • Linux 中的 Stat 命令

    stat是一个命令行实用程序 显示有关给定文件或文件系统的详细信息 本文介绍了如何使用stat命令 使用stat命令 语法为stat命令如下 stat OPTION FILE stat接受一个或多个输入FILE名称并包含许多控制命令行为和输
  • 如何在 CentOS 8 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 CentOS
  • Linux 中的 Chgrp 命令(更改组)

    在 Linux 中 每个文件都与一个所有者和一个组相关联 并具有确定哪些用户可以读取 写入或执行该文件的权限 本文介绍了如何使用chgrp命令更改给定文件的组所有权 chgrp命令语法 The chgrp命令采用以下形式 chgrp OPT
  • 如何在 CentOS 7 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 是 Ruby on Rails 框架背后的语言 本文展示了在 CentOS 上安装 Ruby 的几种不同方法 每种安装方法都有自己的优点 您可以选择最适合您的一种安装方法 先决条件 在开始
  • 如何每 5 分钟、10 分钟或 15 分钟运行一次 Cron 作业

    cron 作业是按指定时间间隔执行的任务 可以将任务安排为按分钟 小时 每月的某一天 每月 每周的某一天或这些的任意组合运行 Cron 作业通常用于自动化系统维护或管理 例如备份数据库或数据 使用最新的安全补丁更新系统 检查磁盘空间使用情况
  • Bash:追加到文件

    在 Bash 中 有多种方法可以将文本附加到文件中 本文解释了其中一些 要将文本附加到文件 您需要对其具有写入权限 否则 您将收到权限被拒绝的错误 使用重定向运算符附加到文件 gt gt 重定向允许您捕获命令的输出并将其作为输入发送到另一个
  • 在 C/C++ 中使用 INT_MAX 和 INT_MIN

    在本文中 我们将了解在 C C 中使用 INT MAX 和 INT MIN 这些实际上是有用的宏 它们表示最大和最小整数值 让我们用一些例子来看看它 使用 INT MAX 和 INT MIN INT MAX 是一个表示最大整数值的宏 同样
  • Google Guice 依赖注入示例教程

    谷歌指南是在应用程序中自动执行依赖项注入的框架 如果您直接遇到这里 我建议您查看一下依赖注入示例在这里我们了解了传统对象创建方法的问题以及依赖注入的实现优势 在上一篇教程中 我们学习了如何在应用程序中手动实现依赖注入 但是 当应用程序中的类
  • 如何在 CentOS 7 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LEMP Linux Nginx MySQL MariaDB PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 CentOS 7
  • 如何配置 DNS 循环负载平衡以实现高可用性

    介绍 尽管这是一种更有争议的技术 但利用提供商的全球影响力在地理上分发应用程序的一个好方法是使用和管理 DNS 响应 即返回的 IP 地址列表 除非您愿意在硬件和基础设施成本上花费一点钱 否则使用 DNS 来实现高可用性可能是一个很好的方法
  • 如何在 CentOS 7 上使用 FreeIPA 设置集中式 Linux 身份验证

    介绍 FreeIPA是 Linux 的开源安全解决方案 提供帐户管理和集中身份验证 类似于 Microsoft 的 Active Directory FreeIPA 构建在多个开源项目之上 包括 389 Directory Server M
  • Spring Boot 教程

    欢迎来到 Spring Boot 教程 春季启动是 Pivotal Team The Spring Team 的一个全新项目 它是在现有 Spring 框架之上开发的框架 Spring Boot 教程 Spring Boot使用全新的开发模
  • 如何使用 Whisper 和 Spleeter AI 工具制作卡拉 OK 视频

    介绍 人工智能工具可用于处理图像 音频或视频以产生新颖的结果 直到最近 在不使用大量时间和计算能力的情况下 自动编辑图像或音频仍然具有挑战性 即使如此 通常也只能运行交钥匙滤波器来删除声音中的某些频率或更改图像的调色板 较新的方法使用人工智
  • JSF PrimeFaces 教程

    欢迎来到 JSF Primefaces 教程 JavaServer Faces是当今用于实现 Java Web 应用程序用户界面的领先框架之一 JSF 已经组件化了 Web 应用程序 特别是与界面相关的部分 因为 JSF 中的所有单一视图都
  • 如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

    介绍 很大一部分网站和应用程序都需要 MySQL 等关系数据库管理系统 然而 并非所有用户都愿意从命令行管理数据 为了解决这个问题 创建了一个名为 phpMyAdmin 的项目 以提供基于 Web 的管理界面形式的替代方案 在本指南中 我们
  • 如何保护您的服务器免受 POODLE SSLv3 漏洞的影响

    介绍 2014年10月14日 SSL加密协议第3版中的漏洞被披露 该漏洞被称为 POODLE Padding Oracle On Downgraded Legacy Encryption 允许攻击者使用中间人攻击以纯文本形式读取使用此版本协
  • 如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS

    介绍 Warning FTP 不安全 考虑使用 SFTP 代替 FTP FTP 即文件传输协议 是一种在本地和远程服务器之间传输文件的方式 尽管这种文件传输方法非常流行且无处不在 但由于其设计缺乏固有的安全性 它已经不再受欢迎 如上所述 S
  • 如何在 Ubuntu 14.04 上安装、配置和部署 Rocket.Chat

    介绍 火箭聊天是一个用 Meteor 构建的开源消息传递应用程序 它支持视频会议 文件共享 语音消息 拥有功能齐全的 API 等等 Rocket Chat 对于那些喜欢完全控制自己的通信的人来说非常有用 在本教程中 我们将在新的 Ubunt
  • 如何在 Ubuntu 22.04 上使用 xrdp 启用远程桌面协议

    作者选择了COVID 19 救济基金接受捐赠作为为捐款而写程序 介绍 远程桌面协议 RDP 是 Microsoft 开发的一种网络协议 允许用户远程访问远程 Windows 服务器的图形用户界面并与之交互 RDP 采用客户端 服务器模型 其
  • Apache 配置错误 AH00558:无法可靠地确定服务器的完全限定域名

    介绍 阿帕奇AH00558 Could not reliably determine the server s fully qualified domain name当 Apache 未配置全局变量时 会生成消息ServerName指示 该