Apache2 Apache如何确定FQDN?

Apache2 Apache如何确定FQDN?,apache2,hostname,fqdn,Apache2,Hostname,Fqdn,我正在使用Apache2,在重新加载/重新启动服务器时,我收到以下警告: apache2:无法可靠地确定服务器的完全限定域名,将(我的FQDN)用于ServerName 一切正常,但我正试图找出是什么导致了错误。我正在抓取源代码,看看是否可以找到它,但由于我的C不是很好 一些注释: 如果我更改系统主机名,Apache将使用新的主机名 我有一个ServerName集;它与主机名相同 我有一个静态、唯一的IP-dig(主机名)returns(我的IP),dig-x(我的IP)returns(主机名)

我正在使用Apache2,在重新加载/重新启动服务器时,我收到以下警告:

apache2:无法可靠地确定服务器的完全限定域名,将(我的FQDN)用于ServerName

一切正常,但我正试图找出是什么导致了错误。我正在抓取源代码,看看是否可以找到它,但由于我的C不是很好

一些注释:
  • 如果我更改系统主机名,Apache将使用新的主机名
  • 我有一个
    ServerName
    集;它与主机名相同
  • 我有一个静态、唯一的IP-
    dig(主机名)
    returns(我的IP),
    dig-x(我的IP)
    returns(主机名)
  • 我的主机文件是正确的

版本:

Apache/2.2.9 Linux 2.6.24-23-xen x86_64 Description: Debian GNU/Linux 5.0 (lenny) Apache/2.2.9 Linux 2.6.24-23-xen x86_64 描述:Debian GNU/Linux 5.0(lenny)
有什么想法吗?

您确定在任何
块之外有一个值正确的
ServerName
指令吗?(当然,在每个
块中还需要一个
ServerName


当Apache发出错误消息时,通常意味着它找不到整个服务器的
ServerName
。如果您确实正确设置了该指令,我无法想象Apache为什么还会抱怨……

有关在debian上设置主机名和FQDN的更多信息(这也防止了警告),请检查以下内容:

在debian上,由于使用/etc/hostname文件的脚本/etc/init.d/hostname.sh,主机名是在启动时设置的。我们可以使用此文件更新计算机主机名及其FQDN(完全限定域名)

如果vhost中的
ServerName
是my-computer.my-domain.ext,请确保复制/etc/hosts中的确切名称

注意:在/etc/hosts文件中,必须遵守主机名和FQDN顺序。 首先是fqdn,最后是主机名和本地主机

~$ echo "my-computer" > /etc/hostname
~$ echo "127.0.0.1 my-computer.my-domain.ext my-computer localhost" > /etc/hosts
~$ /etc/init.d/hostname.sh
您可以使用以下行检查更改:

~$ hostname
my-computer
~$ hostname --fqdn
my-computer.my-domain.ext

旧主机名可能仍然存在于命令行提示符中。只需注销,然后登录使其消失。

嘿,你说得对-我没有,这就解决了问题。那么,“可靠地确定fqdn”真的意味着“在我的配置文件中找到默认/全局服务器名”吗?@Peter Stone Apache将尝试通过反向ip查找来确定服务器名,如果您没有在配置中设置它。如果指定的ip没有PTR记录,则Apache会给出该错误消息。@请参阅我的原始帖子-“dig-x(我的ip)返回(主机名)”
dig-x
返回PTR.OK,这实际上就是它的意思-主站点配置与server/vhost.c中的任何其他vhost一样被解析:“如果(!s->server_hostname){s->server_hostname=ap_get_local_host(p);}”(ap_get_local_host打印错误)。我想这只是一个稍微让人困惑的错误信息。