13.04 及更高版本

13.04 及更高版本

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

sudo /etc/init.d/apache2 restart

我收到以下错误:

Restarting web server apache2
apache2: 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?什么原因导致此错误?

答案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 localhost
127.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

但在 Ubuntu 14.04 上:

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

不要忘记“ .conf”(没有它将无法工作)。

答案2

13.10 或更高版本

从 Apache 2.4(从 13.10 开始默认可用)开始,您不能使用在conf.d目录中添加配置文件的方法。

Apache 不再使用conf.d目录。所有配置文件都存储在/etc/apache2/conf-available目录内,并且所有配置文件现在都应该有一个.conf扩展名。

为了解决 Apache 2.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是用于在 Apache 2.4 中启用配置文件的命令。还请注意,servername上述命令中的 是来自配置文件的名称servername.conf。如果您的配置文件是,ngenericserver.conf那么您必须写入sudo a2enconf ngenericserver

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

sudo service apache2 reload

或者

sudo apache2ctl graceful

现在,您将看到该消息将不再显示,并且问题将得到解决。

答案3

Apache2 还可以从正确配置的系统主机名中获取 FQDN,而不是将其硬编码到 Apache 配置文件中。如果主机名发生变化,对其进行硬编码也会引起混淆。实际上,您不需要任何ServerName指令httpd.conf或任何 Apache 配置文件。

输入以下内容/etc/hosts

# IPv4 and IPv6 localhost aliases
127.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)。

答案4

在新版本的 apache2 中,您只需执行以下操作:

sudo nano /etc/apache2/apache2.conf

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

ServerName localhost

然后重新启动apache2:

sudo service apache2 restart

完成。

相关内容