我从 Leopard 升级到 Mountain Lion 后,无法在 MacBook 上设置 Apache。我尝试了以下方法这些说明。我已将LoadModule php5_module libexec/apache2/libphp5.so
中的行取消注释/etc/apache2/httpd.conf
,我有一个my_user_name.conf
文件,/etc/apache2/users
其内容如下:
<Directory "/Users/sarah/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我在 中有一个 index.html 文件/Users/my_user_name/Sites
,其 chmodded 设置为 644,所有者为my_user_name
。
- 但是,当我访问 时
http://localhost/~my_user_name
,仍然出现 403 Forbidden 错误。 - 我
/Library/WebServer/Documents/phpinfo.php
在<?php phpinfo(); ?>
其中创建了它,当我在浏览器中查看它时,我只看到源代码。 - 当我访问 时
http://localhost
,我看到“它起作用了!”。但是,在我访问 之后sudo apachectl stop
,如果我访问http://localhost
,我仍然会看到“它起作用了!”——如果我停止了 Apache,它不应该无法访问吗?
看起来好像我的 后面还有其他 Web 服务器localhost
,这就是为什么我对 和 的更改httpd.conf
没有my_user_name.conf
任何影响。有什么想法吗?
答案1
好的,我们已经确定您正在运行多台apache
服务器。
我建议做的第一件事就是重新启动——这通常不是我推荐的解决方案,但如果您的系统处于某种不一致的状态,并且 Apache 半死不活,这将解决它并让您回到正常工具可以启动/停止 Web 服务器的状态。
如果这不能让你进入工作状态,你必须确定额外的 httpd 来自哪里(你可以使用lsof
(作为 root)来确定httpd.conf
它正在读取哪个文件,它可能包含一些关于安装它的线索,以及如何禁用或重新配置它)
答案2
我猜想附加的 Web 服务器是 OS X 内置的。它仍然在 Mountain Lion 中,但用于启用和禁用它的 UI 已被删除。不过,您仍然可以从命令行管理它。OS X 使用 launchd 启动并维护内置 Web 服务器,因此您可以使用launchctl
它来管理它。首先,检查 launchd 是否正在运行 apache:
$ sudo launchctl list | grep apache
1526 - org.apache.httpd
该结果告诉我 launchd 已启动一个标签为 org.apache.httpd 的项目,并且它作为进程 ID 1526 运行。如果它没有活动的 apache 项目,则结果将为空白。
如果它是系统提供的启动项,你可以使用以下命令将其关闭:
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
请注意,这-w
会使卸载永久生效(如果没有它,该项目将在下次重启时重新加载)。