macos:启动apache后,端口和DocumentRoot错误

macos:启动apache后,端口和DocumentRoot错误

Apache 曾经在我的计算机上运行,​​昨晚我将其停止了,现在我无法让它再次运行。

我有一个index.htmlin ,这也是在 中/Library/WebServer/Documents设置的。在这个文件中,只有单词。目录中没有其他内容。我用 启动了 apache ,没有产生错误消息。DocumentRoot/etc/apache2/httpd.confTESTsudo apachectl start

不过,在 上localhost:80我还是收到连接错误。有趣的是,当我转到 时localhost:8080,我收到标准的 apache“它有效”消息。当我使用 停止 apache 时,此消息停止工作sudo apachectl stop。在清除缓存后在多个浏览器中尝试了此操作,所以这不是问题。

我在整个/etc/apache2目录中搜索了 8080,没有找到任何结果。我开始怀疑我运行的不是我期望的程序,或者是在其他地方配置的另一个版本。有什么想法吗?

答案1

要查看正在使用哪个配置文件,您需要查看 apache 从哪里运行,然后使用选项运行它-V以查看其配置选项。此单行命令将找到正在运行的 apache 进程并打印配置:

$(ps ax -o comm | grep -m 1 '[a]pache\|[h]ttpd') -V

配置文件位置就在上面D SERVER_CONFIG_FILE。我的是在/private/etc/apache2/httpd.conf

配置文件的位置是在 Apache 编译时设置的。但是,您可以通过将选项传递-f给 Apache 来更改此设置当它开始时

您的系统上的 Apache 可能由 launchd 启动。您可以plist使用以下命令找到正确的文件:

grep -lRi 'httpd\|apache' /Library/Launch*/ ~/Library/LaunchAgents/

我有一个plist可以加载 apache 的/Library/LaunchDaemons/homebrew.mxcl.httpd22.plist

要指定不同的配置文件,您需要编辑程序参数以传递-f带有配置文件路径的选项,例如

<array>
    <string>/usr/local/opt/httpd22/bin/httpd</string>
    <string>-D</string>
    <string>FOREGROUND</string>
    <string>-f</string>
    <string>/path/to/httpd.conf</string>
  </array>

重新启动将应用更改。

相关内容