Mac OS Mountain Lion - Apache运行但localhost无法运行

Spa*_*ger 8 unix apache macos localhost osx-mountain-lion

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

sudo apachectl start
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在Firefox中打开localhost时,我收到了消息

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

我编辑了httpd.conf和httpd.conf.default进行更改

#ServerName www.website.com
Run Code Online (Sandbox Code Playgroud)

ServerName localhost
Run Code Online (Sandbox Code Playgroud)

它仍然无法正常工作.有什么建议?

Tim*_*m B 6

要验证进程是否正在侦听端口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)
Run Code Online (Sandbox Code Playgroud)

这将验证您是否已成功启用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
Run Code Online (Sandbox Code Playgroud)

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


小智 5

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