Apache 曾经在我的计算机上运行,昨晚我将其停止了,现在我无法让它再次运行。
我有一个index.html
in ,这也是在 中/Library/WebServer/Documents
设置的。在这个文件中,只有单词。目录中没有其他内容。我用 启动了 apache ,没有产生错误消息。DocumentRoot
/etc/apache2/httpd.conf
TEST
sudo 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>
重新启动将应用更改。