Mac OS Mountain Lion-Apache正在运行,但localhost不工作



我用命令在Mac OS Mountain Lion上加载了Apache Web服务器

sudo apachectl start

然而,当我尝试在Firefox中打开localhost时,我会收到消息

找不到:在此服务器上找不到请求的URL/。Apache/2.2.21(Unix)DAV/2服务器,位于localhost端口80

我编辑了httpd.conf和httpd.conf.default以更改

#ServerName www.website.com

ServerName localhost

它仍然不起作用。有什么建议吗?

要验证进程是否在端口80上侦听,可以在终端窗口中使用lsof:

$ sudo lsof -iTCP:80 -sTCP:LISTEN
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
httpd      88 root    4u  IPv6 0xffffff8018804600      0t0  TCP *:http (LISTEN)
httpd      90 _www    4u  IPv6 0xffffff8018804600      0t0  TCP *:http (LISTEN)
httpd   14843 _www    4u  IPv6 0xffffff8018804600      0t0  TCP *:http (LISTEN)

这将验证您是否成功启用了apache。

(我安装了xcode,但我认为lsof是正常安装的一部分)

添加:

这证实了apache正在监听端口80。我要采取的下一步是查看访问日志,看看当您请求"/"时,apache记录了什么,如apache返回到浏览器的错误所示。这就是我的表现。注意,http GET请求显示为返回代码200(成功):

bash-3.2# grep 'GET / ' /private/var/log/apache2/access_log 
127.0.0.1 - - [12/Sep/2012:16:46:45 -0400] "GET / HTTP/1.1" 200 44
127.0.0.1 - - [12/Sep/2012:16:49:44 -0400] "GET / HTTP/1.1" 200 44

您还可以通过刷新浏览器窗口,然后确认apache将新请求记录到access_log来确认浏览器请求的url。

您应该检查在"httpd.conf"中指定为"DocumentRoot"的文件夹的权限,并至少允许Apache用户进行读取访问(默认情况下应为"_www")
否则,您可以在"DocumentRoot"文件夹上执行"sudo chmod 755"
顺便说一句,您应该只修改"httpd.conf"文件,因为"httpd.cons.default"是一个默认配置,如果您想恢复Apache的原始配置,只需用"httpd.conc.default"文件覆盖"httpd.conf"文件即可
我想您还没有启用基于名称的虚拟主机,因为当您启用基于名称虚拟主机时,主配置中的文档根将被忽略;相反,将使用匹配主机名的根,如果不匹配,则默认为第一个虚拟主机
最后,当您遇到问题时,首先要检查的始终是Apache错误日志文件
错误日志的位置可以通过查看Apache配置文件中的"ErrorLog"指令找到。

注释掉所有的IfDefine !WEBSERVICE_ON标记,将内容保留在内--Mountain Lion上没有WEBSERVICE

相关内容

最新更新