sudo /etc/init.d/apache2 restart
重新启动Apache服务器时,出现以下错误: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 楼
6#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
但是在Ubuntu 14.04上:
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
别忘了“ .conf”(不起作用)。
#2 楼
13.10或更高版本从Apache 2.4开始-从13.10开始默认可用-您不能使用在
conf.d
目录中添加配置文件的方法。不再使用conf.d
目录。所有配置文件都存储在/etc/apache2/conf-available
目录中,并且所有配置文件现在都应该具有.conf
扩展名。为了解决Apache 2.4中的此消息,我们必须在conf-内部创建一个配置文件。可用目录。例如
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
是在Apaches 2.4中启用配置文件的命令。另请注意,上述命令中的servername
来自配置文件servername.conf
的名称。如果您的配置文件是ngenericserver.conf
,则必须编写sudo a2enconf ngenericserver
。重新加载服务器后,以上消息将不再困扰您。
sudo service apache2 reload
sudo apache2ctl graceful
现在,此后您将看到不再显示该消息,并且问题已得到解决。
评论
有人知道如何让Apache说出配置文件有问题吗?我不知道为什么开发人员从不考虑将其放入错误消息中-几乎不需要太多代码!
–约翰Y
2014年7月8日在10:08
如果我有此服务器的Internet fqdm,请问这是放置它的地方吗?即我应该用myhost.org代替localhost吗?
– CPBL
14年8月14日在16:54
@CPBL这将是所有站点的默认服务器名称。如果您只有一个站点,那么这就是您需要做的。如果服务器上有多个站点,则还需要为每个站点在其各自的虚拟主机配置中添加servername指令。
–丹
2014年10月7日在17:12
适用于14.04 LTS。
–Parto
15年6月29日在6:34
您引用的链接似乎已失效,请修复。
–弗雷德里克·高斯(Fredrick Gauss)
15年8月27日在7:56
#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
。)评论
+1为“正确配置的系统主机名”。我想正确配置服务器。这也修复了我在日志中的错误[警告] RSA服务器证书CommonName(CN)
–晶体管1
2014年4月16日在3:21
您认为这对Apache 2.2.22应该适用吗?我仍然收到“无法使用Server 127.0.1.1可靠地确定服务器的标准域名”
– David Winiecki
2015年4月12日在5:08
主机名localhost应该是myubuntuservername localhost吗?还是字符串文字主机名localhost?你的答案不清楚
–乔纳森
17年4月5日在16:25
这应该是公认的答案。似乎您可能需要将FQDN与静态IP地址而不是127.0.0.1关联。
–Skippy le Grand Gourou
17年5月12日14:25
这是在Ubuntu 18.04上对我最好的答案,我希望文档是一致的,尽管此处或任何地方的完全限定域名不是同一术语。如果我的完全限定域名是google.com,而我的服务器名称是google,则我在/ etc / hosts中的输入将是127.0.0.1 google.com google如果我可以将localhost行和广告本地主机替换为该行的末尾希望。我用了这个:digitalocean.com/community/tutorials/…
– NZ开发人员
19年1月17日在1:38
#4 楼
打开终端
打开
/etc/apache2/httpd.conf
文件:sudo editor /etc/apache2/httpd.conf # [1]
默认情况下为空白。只需添加以下行:
ServerName localhost
保存文件并退出
重新启动服务器
sudo service apache2 restart
[1]启动默认编辑器,请参阅
sudo update-alternatives --config editor
评论
执行最后一个命令后,将发生以下错误**重新启动Web服务器apache2 / usr / sbin / apache2ctl:87:ulimit:错误设置限制(不允许操作)/ usr / sbin / apache2ctl:87:ulimit:错误设置限制(不操作) (13)权限被拒绝:make_sock:无法绑定到地址0.0.0.0:80没有可用的侦听套接字,正在关闭无法打开日志操作“启动”失败。 Apache错误日志可能包含更多信息。 [失败] ** @ green7
– Deepu
13年2月14日在13:52
尝试'sudo service apache2 restart'
– waterloo2005
13年4月15日在3:09
#5 楼
在新版本的apache2中,您只需执行以下命令:sudo nano /etc/apache2/apache2.conf
添加以下文件的新行结尾:
ServerName localhost
然后重新启动apache2:
sudo service apache2 restart
已完成。
#6 楼
我发现在/etc/conf.d
中创建一个新文件来修改q4312079q或apache2.conf
更好。个人喜好使我的配置更改与分发程序包分开。这样更新就不那么复杂了。
我创建了文件
httpd.conf
,它仅包含:ServerName myhost.mycomain.tld
其他建议当然也可以。
/>
#7 楼
在Ubuntu 16.04中:sudo -i
echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name
#8 楼
在Ubuntu 16.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
#9 楼
将ServerName localhost
添加到
sudo leafpad /etc/apache2/apache2.conf
sudo leafpad /etc/apache2/httpd.conf
这不是错误。这只是一个朋友提醒
#10 楼
在虚拟主机部分之外的配置文件中指定ServerName localhost
就是这样做的方法。 其他一些答案建议您修改
/etc/apache2/httpd.conf
。当从apt升级apache时,此文件将被覆盖。对于您不想被覆盖的Apache配置,您应该创建一个新文件。这是进行此配置更改的“ Debian方式”:# create the configuration file in the "available" section
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
sudo a2enconf servername
# restart the server
sudo service apache2 restart
这与Stark的答案基本相同,但以易于复制和粘贴的脚本形式。我最初将其发布在一个标记为重复的问题中:https://askubuntu.com/a/432408
#11 楼
在Ubuntu 11.10上,我看到此消息,并且由于磁盘已满而发生挂起的引导。其中一个日志文件已损坏。 Apache可能实际上没有问题,但是此消息是启动挂起之前给出的最后一条线索。要解决此问题,我必须启动进入恢复模式并删除任性的日志文件。
#12 楼
如果您使用的是bash并且想要最小的依赖项(如果像我这样使用Docker的话,只想为入口点脚本添加一个衬里),那么这两个选项应该可以使用。如果您要使用localhost:
echo "ServerName localhost" >> /etc/apache2/apache2.conf
如果要现有的主机名:
echo "ServerName $(cat /etc/hostname)" >> /etc/apache2/apache2.conf
这使用bash重定向运算符附加字符串到文件末尾。 Echo会自动插入换行符,因此一切就绪。
#13 楼
运行以下命令:apachectl -t -D DUMP_INCLUDES
确定
httpd.conf
配置文件的路径,然后编辑该文件并取消注释/修改指定ServerName
选项值的行,例如ServerName localhost
对于Web服务器,请使用注册的DNS名称(例如
example.com
)。如果主机没有具有注册的DNS名称,请在此处输入其IP地址。
#14 楼
在Ubuntu 16.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服务apache2 restart
评论
Ubuntu LAMP设置文档中还提到了Apache故障排除。在那里,他们建议创建其中带有ServerName localhost的文件/etc/apache2/conf.d/fqdn
–icc97
13年6月29日在9:36
很好的答案-但我也建议将其放在conf.d目录中:)
– cwd
2013年9月26日22:42
在14.04中安装lamp-server ^之后,/etc/apache2/conf.d/不存在
– redanimalwar
2014年5月3日7:51
@redanimalwar对于13.10及更高版本,请参见下面的@Starx答案。
–丹
2014年5月7日在7:21
对于最后一步(在14.04中创建符号链接),我建议使用sudo a2enconf fqdn,尽管从技术上讲应该是相同的。
– nuala
14年6月18日在15:04