8

我使用命令在 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

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

4

3 回答 3

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)

这将验证您是否成功启用了 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

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

于 2012-09-12T21:08:19.147 回答
5

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

于 2012-09-12T20:47:03.423 回答
1

注释掉所有IfDefine !WEBSERVICE_ON标签,保留内容WEBSERVICE——Mountain Lion 上没有。

于 2012-10-18T16:33:50.873 回答