我在我的 Mac 上使用 Homebrew 安装了 apache,导致我的 Mac 上当前有 2 个 apache 实例。我已禁用 Mac 安装的 Apache 实例的自动加载。
当我运行时,which -a apachectl
我得到了 apachectl 可执行文件的两个路径:/usr/sbin/apachectl
和/usr/local/bin/apachectl
(这是 Homebrew 安装的 Apache 的符号链接)。然后当我运行时,我which apachectl
会指向安装 Homebrew 的 Apache 版本。
但是,当我运行whereis apachectl
它时,它会输出 Mac 安装版本的 Apache 的路径:/usr/sbin/apachectl
.
此外,在运行时apachectl start/stop
我不需要该sudo
命令,因此我似乎正在启动/停止 Homebrew 安装的 Apache 实例。它还直接从正确的正确加载我的网页,所以我假设 Apache 正在加载 Homebrew 安装的 httpd.conf 文件。当我尝试运行/usr/sbin/apachectl
命令行时,要求使用 sudo,这告诉我该目录中的 Apache 可执行文件是 Mac 安装的 apache。
奇怪的是,当我运行apachectl -V
它时,它会输出我的 Homebrew 安装的 Apache 的配置信息。
为什么whereis apachectl
指向/usr/sbin/apachectl
(Mac 安装版本),但运行apachectl -V
输出 Homebrew 安装版本的配置信息?我跑步时这里发生了什么apachectl start
?
以下内容直接来自 whereis 手册:
user.cs_path
是内核中设置的PATH 。which
将搜索你的shell设置的PATH。