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