Apache升级后在OS X Mountain Lion上没有响应

从Leopard升级后,我无法在Mountain Lion的MacBook上设置Apache。 我试着按照这些说明 。 我在/etc/apache2/httpd.conf中将LoadModule php5_module libexec/apache2/libphp5.so行取消注释,我在/etc/apache2/users有一个my_user_name.conf文件,其内容如下:

 <Directory "/Users/sarah/Sites/"> Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 

我在/Users/my_user_name/Sites my_user_name /Users/my_user_name/Sites有一个index.html文件,被chmodded为my_user_name拥有的644。

  • 但是,当我去http://localhost/~my_user_name ,我仍然得到403禁止。
  • 我用<?php phpinfo(); ?>创build了/Library/WebServer/Documents/phpinfo.php <?php phpinfo(); ?> <?php phpinfo(); ?> ,当我在浏览器中查看时,我只看到源代码。
  • 当我去http://localhost ,我看到“It works!”。 但是,当我做sudo apachectl stop ,如果我访问http://localhost ,我仍然看到“It works!” – 如果我停止了Apache,不应该无法访问?

几乎好像在我的localhost后面有一些其他的web服务器,这就是为什么我对httpd.confmy_user_name.conf所做的更改没有任何区别。 有任何想法吗?

好的,所以我们确定你正在运行多个apache服务器。

我build议做的第一件事就是重新启动 – 这通常不是我推荐的解决scheme,但是如果你的系统处于某种不一致的状态,并且有一半的Apache,那么这将解决它,让你回到一个状态普通的工具将用于启动/停止Web服务器。

如果不能让你进入工作状态,你必须确定额外的httpd来自哪里(你可以使用lsof (以root身份)来确定它正在读取哪个httpd.conf文件,这可能包含一些关于安装的线索它,以及如何去禁用或重新configuration它)

我猜附加的Web服务器是内置到OS X中的。它仍然在Mountain Lion中,但启用和禁用它的UI已被删除。 但是,您仍然可以从命令行pipe理它。 OS X使用launchd启动并维护内置web服务器,因此您可以使用launchctl来pipe理它。 首先,检查launchd是否正在运行apache:

 $ sudo launchctl list | grep apache 1526 - org.apache.httpd 

这个结果告诉我launchd已经启动了一个标签为org.apache.httpd的项目,并且它以进程ID 1526运行。如果没有活动的apache项目,结果将是空白的。

如果是系统提供的启动项目,可以使用以下命令closures它:

 $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 

请注意, -w使卸载永久(没有它,该项目将在下次重新启动时重新加载)。