【问题标题】:How to stop apache permanently on mac Mavericks?如何在 mac Mavericks 上永久停止 apache?
【发布时间】:2013-12-24 17:48:47
【问题描述】:

我正在尝试在 mac 上安装 zend 服务器,并且需要卸载 Mavericks 中自动包含的 apache 服务器,以便使用 Zend 中包含的 Apache 服务器。是否可以阻止它在启动时运行或永久删除?

【问题讨论】:

  • 关闭它的愚蠢决定,因为它显然与软件开发有关。事实上,这个问题在 Server Fault 中是不可接受的,因为它不涉及服务器管理。没有人使用 Mavericks 作为服务器操作系统,他们在他们的开发机器上使用它,这使得这是一个关于开发工具的问题。
  • Reeeeeeeeeeeeeee

标签: macos apache osx-mavericks


【解决方案1】:

我遇到了同样的问题,罪魁祸首是相当迟钝。最终 OSX 试图包含一个不存在的 php 版本,但是由于自制 httpd 优先,OSX httpd 也无法直接访问。这是我修复它的方法:

第一:brew unlink httpd 然后which httpd透露了以下内容:/usr/sbin/httpd

此时我跑了sudo /usr/sbin/httpd -k stop,真正的罪魁祸首现身了:

httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _environ\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so

然后我用sudo vi /private/etc/apache2/httpd.conf 修复了这个问题,并注释掉了该文件中的所有行,并运行了以下代码:

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

这说明:

/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service

根本问题是本机 OSX 实例仍在运行,但由于 PHP 未找到问题已与 launchctl 分离。所以基本上launchctl认为它已经正确关闭了进程,但是apachectl代理由于PHP错误拒绝停止,导致解耦进程,只有在自制版本也被取消链接时才能直接控制。

注释掉原生 PHP 包含让我可以毫无问题地运行 sudo apachectl -k stop

整理好之后就跑了

brew link httpd

紧随其后

brew services restart httpd

利润。

【讨论】:

    【解决方案2】:

    试试这个

    sudo killall httpd
    

    它会停止一切

    【讨论】:

    • 这只会停止 httpd 服务。它不会阻止它在重新启动时启动。
    【解决方案3】:

    如果您像我一样进入此页面并且得到类似 /System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service. 的内容,请尝试不要使用 sudo 命令,这会让我收到上述错误。

    【讨论】:

    • 嗯,即使没有 sudo 我也会遇到这个问题......还有其他想法吗?
    • 告诉我 This operation requires root. 没有 sudo,apachectl stop
    【解决方案4】:

    试试这个:

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

    这将停止正在运行的 Apache 实例,并记录它不应重新启动。它会在/private/var/db/launchd.db/com.apple.launchd/overrides.plist 中记录您的偏好。

    【讨论】:

    • 我在 osx 10.9 上收到此错误“卸载错误:org.apache.httpd”
    • Edgar,你需要有一个 apache 实例已经在运行,这个命令才能工作。 sudo apachectl 开始
    • 这似乎不适用于 Mac 10.10 Yosemite。说/System/Library/LaunchDaemons/org.apache.httpd.plist:找不到指定的服务。
    • 它在 Yosemite Beta 5 上不起作用。我收到与 @cchiera 相同的消息
    • 适用于 Yosemite 5 - apache 需要在发出命令之前运行
    猜你喜欢
    • 2014-10-25
    • 2014-07-04
    • 1970-01-01
    • 2014-10-06
    • 2018-08-21
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多