apache httpd:无法可靠地确定服务器的完全限定域名[已关闭]

92dk7w1h  于 2023-05-07  发布在  Apache
关注(0)|答案(5)|浏览(151)

**关闭。**这个问题是not about programming or software development。目前不接受答复。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
2天前关闭。
截至2天前,社区正在审查是否重新讨论此问题。
Improve this question
我知道这个问题已经被研究过很多次了,但这里的解决方案并没有解决它们。
让我们从一些背景信息开始:
OS X 10.8.4 Apache 2.2.22
问题:我在控制台得到这个错误,Apache找不到我的本地主机,但启动正常。真奇怪

[Sat Aug 17 13:40:06 2013] [info] mod_ssl/2.2.22 compiled against Server: Apache/2.2.22, Library: OpenSSL/0.9.8r
httpd: Could not reliably determine the server's fully qualified domain name, using Specter.local for ServerName

所以通常这会指向我的ServerName没有设置正确。我已经尝试过不同的变体,比如Specter.local、localhost等等
下面是我的/private/etc/httpd.conf的副本&这与/private/etc/apache 2/httpd.conf相同

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost

我的主机文件设置如下:

127.0.0.1   localhost localhost.local
255.255.255.255 broadcasthost
127.0.0.1       themill.dev
127.0.0.1       phpmyadmin.dev
127.0.0.1       Specter.local

在我的/private/etc/apache 2/users/ta.conf文件中,

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
# DEV: THEMILL SITE
<VirtualHost *:80>
  ServerAdmin test@dummy.com
  DocumentRoot "/Users/ta/Sites/themill/htdocs"
  ServerName themill.dev
  ServerAlias *.themill.dev
  ErrorLog "/Users/ta/Sites/themill/log/error_log"
  CustomLog "/Users/ta/Sites/themill/log/access_log" common
</VirtualHost>

# PHPMYADMIN
<VirtualHost *:80>
  ServerAdmin test@dummy.com
  DocumentRoot "/Users/ta/Sites/phpmyadmin"
  ServerName phpmyadmin.dev
  ServerAlias *.phpmyadmin.dev 
  ErrorLog "/Users/ta/Sites/phpmyadmin/log/error_log"
  CustomLog "/Users/ta/Sites/phpmyadmin/log/access_log" common
</VirtualHost>

不知道还应该配置什么。它曾经工作,但后10.7升级,它从来没有工作,现在我试图解决它做我的头。
让我知道如果你需要更多的信息。

sgtfey8w

sgtfey8w1#

httpd.conf文件中的以下行是正确的:

ServerName localhost

问题是在macOS上它是错误的文件(不是/private/etc/httpd.conf)。
要找到httpd.conf Apache配置文件的正确位置,请运行:

apachectl -t -D DUMP_INCLUDES

然后仔细检查ServerName是否未注解并设置为localhost

7z5jn7bk

7z5jn7bk2#

忽略所有关于设置ServerNames的建议。IMHO这是一个红鲱鱼。Apache正在尝试使用标准系统组件来确定FQDN,但没有找到任何合适的组件。当然,您可以通过向Apache全局添加一个指令来破坏这个过程,但我认为这是治疗症状。当然,你应该在你的虚拟主机块中有ServerName指令。
相反,请编辑主机文件,并确保其中列出了FQDN。我已经看到了关于特定127* 行的语法的各种建议,但我认为事情的顺序并不重要,只要列出了FQDN:

127.0.0.1       localhost.localdomain   localhost       foo.example.com

这对我很有效,而且似乎比其他所有的“对我有效”都要中肯得多!“在推荐你编辑httpd.conf之类的帖子上的支持率。我希望这能有所帮助,我不会被否决。如果你不同意,请举例说明原因。谢谢
http://wiki.apache.org/httpd/CouldNotDetermineServerName
一旦Apache可以确定系统的FQDN,它就会为NameBasedHosts读取特定的ServerName指令。

sgtfey8w

sgtfey8w3#

您需要全局设置“ServerName”指令以禁止显示此消息。
1.第一步是找到实际的Apache配置文件,因为很有可能您正在编辑错误的文件
例如,通过以下命令查找httpd.conf Apache配置文件:
apachectl -t -D DUMP_INCLUDES
例如:/usr/local/etc/httpd/httpd. conf。
然后编辑它,并取消注解带有ServerName的行(确保它具有有效的服务器名称)。例如:
服务器名称localhost
你以后再谢我吧!

drnojrws

drnojrws4#

我最近在Mac上遇到了同样的问题,尽管我确实按照Spanky的建议编辑了我的主机文件(我认为这也是必要的),但我还需要编辑我的httpd. conf。
如果任何人在未来有这个以下可能工作
在您的/etc/apache 2/httpd.conf中,在ServerAdmin www.example.com行之后添加此行your@email.com

ServerName your-favorite-server-name

来源:https://blog.cloudtroopers.com/upgrade-osx-1010-yosemite-and-keep-apache-functional

evrscar2

evrscar25#

我在通往荣耀的路上遇到了一些问题,有些是我自己造成的。作为一个经验法则,我发现简单地运行:$sudo httpd -k restart凭借消息输出每次都让我更进了一步。

相关问题