从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.conf
和my_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
使卸载永久(没有它,该项目将在下次重新启动时重新加载)。