我知道这个问题经过了很多研究,但这里的解决方案并没有解决它们。
让我们从一些背景信息开始:
OS X 10.8.4 Apache 2.2.22
问题: 我在控制台中收到此错误,Apache无法找到我的localhost,但确实启动了。怪异。
[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/apache2/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/apache2/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升级,它从来没有工作过,现在我正在努力解决它,它正在努力。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:11)
httpd.conf
文件中的以下行是正确的:
ServerName localhost
问题是在macOS上它是错误的文件(不是/private/etc/httpd.conf
)。
要查找httpd.conf
Apache配置文件的正确位置,请运行:
apachectl -t -D DUMP_INCLUDES
然后仔细检查ServerName
是否已取消注释并设置为localhost
。
答案 1 :(得分:8)
忽略有关设置ServerNames的所有建议。恕我直言,这是一个红鲱鱼。 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指令。
答案 2 :(得分:1)
我最近在Mac上遇到了同样的问题,虽然我按照Spanky的建议编辑了我的主机文件(我认为这也是必要的),我还需要编辑我的httpd.conf。
如果将来有人这样做,以下内容可能有效
在/etc/apache2/httpd.conf中的在ServerAdmin your@email.com行之后添加此行
ServerName your-favorite-server-name
源: https://blog.cloudtroopers.com/upgrade-osx-1010-yosemite-and-keep-apache-functional
答案 3 :(得分:1)
您需要全局设置'ServerName'指令以禁止显示此消息。
例如通过以下命令查找您的httpd.conf Apache配置文件:
apachectl -t -D DUMP_INCLUDES
例如:/usr/local/etc/httpd/httpd.conf。
然后编辑它,并取消注释ServerName(确保它具有有效的服务器名称)行。例如
ServerName本地主机
稍后您可以感谢我!
答案 4 :(得分:0)
我在走向荣耀的过程中遇到了一些问题,有些是自我创造的。根据经验,我发现只需运行:$sudo httpd -k restart
就可以通过输出的消息使我又前进了一步。