Apache错误"无法可靠地确定服务器的完全限定域名"

当我使用命令重新启动我的Apache服务器时

sudo /etc/init.d/apache2 restart

我得到以下错误:

Restarting web server apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName... waiting apache2:Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

服务器是否使用127.0.1.1而不是127.0.0.1? 是什么原因导致此错误?

13.04及以上

这只是一个友好的警告,而不是一个真正的问题(因为有些东西不起作用)。

如果你去:

/etc/apache2/apache2.conf

并插入:

ServerName localhost   

然后通过输入到终端重新启动apache:

sudo systemctl reload apache2

通知就会消失。

如果你里面有名字 /etc/hostname 您也可以使用该名称而不是 localhost.


它使用 127.0.1.1 如果它在你的 /etc/hosts:

127.0.0.1 localhost127.0.1.1 myhostname

优选方法

Apache疑难解答

如果你得到这个错误:

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

然后使用文本编辑器,如"sudo nano"在命令行或"gksudo gedit"在桌面上创建一个新文件,

sudo nano /etc/apache2/conf.d/fqdn

或

gksu "gedit /etc/apache2/conf.d/fqdn"

然后添加

ServerName localhost

到文件并保存。 这一切都可以在一个命令中完成,如下所示:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

但在Ubuntu14.04:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf sudo a2enconf fqdn

别忘了"。conf"(没有将无法正常工作).

13.10或更新

从Apache2.4开始--默认情况下从13.10开始--你不能使用在 conf.d 目录。

Apache不再使用 conf.d 目录。 所有的配置文件都存储在里面 /etc/apache2/conf-available 目录和所有的配置文件现在应该有一个 .conf 延伸。

为了在Apache2.4中解决此消息,我们必须在conf-available目录中创建一个配置文件。 例如 servername.conf.

sudo vi /etc/apache2/conf-available/servername.conf

在这里面,我们只需要添加一行

ServerName localhost

您可以将前两个命令合并为一个:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

如果你想使用一个域名或任何其他名称取决于要求它的罚款,只需替换 localhost 用你需要的任何东西。 接下来,您必须启用此配置。 为此,您需要运行以下命令:

sudo a2enconf servername

a2enconf 是在Apaches2.4中启用配置文件的命令。 另请注意 servername 在上面的命令是从配置文件的名称 servername.conf. 如果您的配置文件是 ngenericserver.conf 那你就得写了 sudo a2enconf ngenericserver.

在此之后重新加载服务器,上面的消息将不再困扰您。

sudo service apache2 reload

或

sudo apache2ctl graceful

现在在此之后,您将看到该消息不会再次显示,问题将得到解决。

Apache2还可以从正确配置的系统主机名获取FQDN,而不是硬编码到apache配置文件中。 如果主机名更改,硬编码也会导致混淆。 你其实不需要任何 ServerName 指示 httpd.conf 或任何apache配置文件。

将以下内容放入 /etc/hosts:

# IPv4 and IPv6 localhost aliases127.0.0.1 hostname.domainname.com  hostname  localhost::1       hostname.domainname.com  hostname  localhost

哪里 hostname.domainname.com 是您机器的FQDN。

连同正确配置的主机名 /etc/hostname/ 或与 hostnamectl,这也将帮助您的机器上的其他服务正常运行(即登录提示,显示 This is hostname.domainname.com 而不是 This is hostname.unknown_domain.)

  • 打开终端机
  • 打开 /etc/apache2/httpd.conf 档案:

    sudo editor /etc/apache2/httpd.conf # [1]
  • 默认情况下,它将为空。 只需添加以下行:

    ServerName localhost
  • 保存文件并退出

  • 重新启动服务器

    sudo service apache2 restart

[1]启动默认编辑器,请参阅 sudo update-alternatives --config editor

在新版本的apache2中,您只需遵循如下命令:

sudo nano /etc/apache2/apache2.conf

在文件末尾添加以下新行:

ServerName localhost

然后重新启动apache2:

sudo service apache2 restart

结束了。

我发现在...中创建一个新文件会更好一些 /etc/conf.d 这可以修改 apache2.conf 或 httpd.conf.

这是个人偏好,使我的配置更改与分发包分开。 所以更新不那么复杂。

我创建文件 /etc/apache2/conf.d/AAserverName 它只包含:

ServerName myhost.mycomain.tld

其他建议当然也有效。

在Ubuntu16.04:

sudo -iecho 'ServerName localhost' > /etc/apache2/conf-available/server-name.confa2enconf server-name

上 Ubuntu16.04:

添加 ServerName localhost 到文件 httpd.conf 使用下面的命令。

sudo vi  /etc/apache2/httpd.conf

然后包括这一行 Include httpd.conf 在这个文件的末尾

sudo vi /etc/apache2/apache2.conf

再次检查语法错误

sudo apache2ctl configtest

你现在应该得到

Syntax OK

您现在可以通过重新加载配置来优雅地重新启动服务器

sudo service apache2 reload

或者杀死进程并重新开始

sudo service apache2 restart

添加 ServerName localhost

到

 sudo leafpad /etc/apache2/apache2.conf sudo leafpad /etc/apache2/httpd.conf

这不是错误。. 这只是一个朋友提醒

指定 ServerName localhost 在虚拟主机部分之外的配置文件中是执行此操作的方法。

其他一些答案建议您应该修改 /etc/apache2/httpd.conf. 当apache从apt升级时,此文件被复盖。 对于您不想被复盖的Apache配置,您应该创建一个新文件。 以下是进行此配置更改的"Debian方式:

# create the configuration file in the "available" sectionecho "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf# enable it by creating a symlink to it from the "enabled" sectionsudo a2enconf servername# restart the serversudo service apache2 restart

这基本上与斯塔克的答案相同,但以易于复制和粘贴的脚本形式。 我最初在一个被标记为重复的问题中发布了这个: https://askubuntu.com/a/432408