我知道这个问题已经被研究了很多,但这里的解决方案并没有解决它们。
让我们从一些背景信息开始:
OS X 10.8.4 阿帕奇 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/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 [email protected]
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 [email protected]
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 升级后,它从未起作用,现在我正在努力解决它,它正在努力。
如果您需要更多信息,请告诉我。
httpd.conf
文件中的以下行是正确的:
ServerName localhost
问题是在 macOS 上它是错误的文件(不是
/private/etc/httpd.conf
)。
要找到
httpd.conf
Apache 配置文件的正确位置,请运行:
apachectl -t -D DUMP_INCLUDES
然后仔细检查
ServerName
是否取消注释并设置为localhost
.
忽略所有关于设置服务器名称的建议。恕我直言,这是一条红鲱鱼。 Apache 正在尝试使用标准系统组件来确定 FQDN,但没有找到任何合适的东西。当然,您可以通过向 Apache 全局添加指令来颠覆此过程,但我认为这是治标不治本。当然,你should 在你的虚拟主机块中有 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 指令。
您需要全局设置“ServerName”指令以抑制此消息。
通过以下命令找到您的 httpd.conf Apache 配置文件:
apachectl -t -D DUMP_INCLUDES
例如:/usr/local/etc/httpd/httpd.conf.
然后编辑它并取消注释带有 ServerName 的行(确保它具有有效的服务器名称)。例如
服务器名称本地主机
你可以稍后感谢我!
我最近在 mac 上遇到了同样的问题,虽然我确实按照 Spanky 的建议编辑了我的主机文件(我认为这也是必要的),但我还需要编辑我的 httpd.conf。
如果将来有人有这个,以下可能会起作用
在您的 /etc/apache2/httpd.conf 中,在 ServerAdmin [email protected] 行之后添加此行
ServerName your-favorite-server-name
来源: https://blog.cloudtroopers.com/upgrade-osx-1010-yosemite-and-keep-apache-functional
我在通往荣耀的路上遇到了一些问题,有些是我自己造成的。根据经验,我发现只要运行:
$sudo httpd -k restart
每次都可以通过消息输出让我更进一步。
brew uninstall httpd
为我做的