升级后,Apache 在 OS X Mountain Lion 上无响应

升级后,Apache 在 OS X Mountain Lion 上无响应

我从 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会使卸载永久生效(如果没有它,该项目将在下次重启时重新加载)。

相关内容