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.confhttpd.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