无法可靠地确定服务器的标准域名


110

我刚刚安装了Apache 2.2.17,并且是第一次使用它。

现在,当我尝试使用命令启动服务器时,service httpd start它会显示以下消息:

httpd:无法可靠地确定服务器的标准域名,对于ServerName使用:: 1

现在,我想我在通过Google搜索时必须设置ServerName和IP地址。但是我不知道必须在哪个文件中设置。

我该如何解决这个问题?

Answers:


66

是的,您应该设置ServerName:

http://wiki.apache.org/httpd/CouldNotDetermineServerName

http://httpd.apache.org/docs/current/mod/core.html#servername

您可以在此处找到有关各种httpd发行版使用的布局的信息:

http://wiki.apache.org/httpd/DistrosDefaultLayout

您的情况下,要编辑的文件是/etc/httpd/conf/httpd.conf


您好,我已经编辑了/etc/httpd/conf/httpd.conf并尝试如下设置ServerName 侦听80 NameVirtualHost 17.2.0.30.40:80 <VirtualHost 172.20.30.40:80> ServerName www.example1.com DocumentRoot / home / user / Softwares / mysite / </VirtualHost>**但是我仍然收到以下错误消息。**启动httpd:警告:DocumentRoot [/ home / user / Softwares / mysite]不存在httpd:无法可靠地确定服务器的位置限定的域名,将:: 1用作ServerName
mahesh,

81
  1. sudo vim /etc/apache2/httpd.conf
  2. 在httpd.conf中插入以下行: ServerName localhost
  3. 只需重启Apache: sudo /etc/init.d/apache2 restart

2
在我的RPi上,我必须将httpd.conf文件放在/etc/apache2/conf.d中才能正常工作。
samkass 2013年

使用Ubuntu 13.04,我也必须将其放入/etc/apache2/conf.d/httpd.conf,其他操作都没有...
user1853181 2014年

谢谢你,这也解决了我的问题。我最近在/ etc / hosts中设置了实际的主机名,这使apache崩溃了,直到我在全局上下文中设置ServerName localhost。现在,虚拟主机再次正常工作,并且SSL证书已正确提供。
AaronM 2015年

15

我没有弄错ServerName。在导致此警告消息的VirtualHost配置内部,它是位于httpd.conf顶部附近的通用配置,默认情况下已将其注释掉

更改

#ServerName www.example.com:80

至:

  ServerName 127.0.0.1:80

10

在Debian Squeeze之下;

  1. 编辑Apache2 conf文件:vim /etc/apache2/apache2.conf
  2. 在apache2.conf中插入以下行:ServerName localhost
  3. 重新启动Apache2:apache2ctl重新启动或/etc/init.d/apache2重新启动

应该工作正常(它确实解决了我的问题)

tks noodl用于不同布局上的链接。:)


4

另一个选择是确保/ etc / hosts中列出了完整的合格主机名(FQDN)。这对我在Ubuntu v11.10上有效,而不必更改默认的Apache配置。



3

要解决此问题,您需要设置ServerName。

1:$ vim /etc/apache2/conf.d/name 例如,设置添加ServerName localhost或任何其他名称:

2:ServerName localhost重新启动Apache 2

3:$ service apache restart 在此示例中,我使用Ubuntu 11.10.1.125”


1

FQDN表示通过DNS解析的名称。它应该像“ server-name.search-domain”。

您得到的警告只是提示httpd找不到FQDN,因此它可能无法正确处理基于名称的虚拟主机。因此,请确保在您的DNS服务器中注册了所需的FQDN,或者在添加/etc/hostsDNS前手动添加了其中的条目。


0

对我来说似乎有两件事:

  1. 将127.0.0.1的所有别名放在/ etc / hosts中的一行中(例如 127.0.0.1 localhost mysite.local myothersite.local
  2. ServerName在我的httpd.conf中设置为0.0.0.0(localhost或127.0.0.1对我不起作用)

编辑/ etc / hosts摆脱了漫长的响应时间,而设置ServerName摆脱了OP对我的警告。


0

谁仍然无法解决问题,并使用mac,然后按照此操作

1.转到根文件夹/

  1. 光盘usr / local / etc / apache2 / 2.4

3. sudo nano httpd.conf

4.将#servername更改为ServerName 127.0.0.1:8080按ctrl + o,+ return + ctrl x

5.然后重启服务器apachectl重启


0

如果您使用的是Windows,则情况会有所不同

首先打开c:/apache24/conf/httpd.conf。Apache文件夹已足够,而不是在路径上方

之后,您必须配置httpd.conf文件。

几行之后就有类似的模式:

#Listen _____________:80
Listen 80

在这里,您必须更改localhost

您必须输入ipv4地址才能打开localhost。

请参阅此视频链接,之后再介绍更多。

更改您的环境变量:

系统设置中环境USER变量的图像

您必须在其中输入路径:

c:apache24/bin


在SYSTEM变量中相同

图像用于系统变量路径

如果有任何疑问,请随时询问。


0

如果您使用的是Windows,请删除这些行的注释并将其设置为:

Line 227 : ServerName 127.0.0.1:80 
Line 235 : AllowOverride all 
Line 236 : Require all granted

为我工作!


0

这是我的两分钱。也许对将来的读者有用。

在Docker容器中使用Apache时遇到了这个问题。当我从Apache Web服务器的映像启动容器时,当我使用时启动此消息docker run -it -p 80:80 my-apache-container

但是,在以分离模式启动容器之后,使用docker run -d -p 80:80 my-apache-container,我可以通过浏览器进行连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.