Windows 上的 Apache httpd 服务器无法启动

Posted

技术标签:

【中文标题】Windows 上的 Apache httpd 服务器无法启动【英文标题】:Apache httpd server on windows won't start 【发布时间】:2016-02-13 03:25:37 【问题描述】:

我通过 trac 的 bitnami 安装包在 Windows7 上安装了 Apache。作为最后的安装步骤,安装程序尝试启动 Apache httpd 服务并抛出启动 https 服务失败的错误。

当我尝试从命令提示符启动 httpd 并收到此错误时,我发现了原因:

AH00526: Syntax error on line 564 of F:/Bitnami/trac-1.0.9-0/apache2/conf/httpd.conf:
SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI.

这是有问题的行:

SetEnv PATH "$PATH;F:/Bitnami/trac-1.0.9-0/apache2/bin;"

我改成这样了:

SetEnv PATH "F:/Bitnami/trac-1.0.9-0/apache2/bin;"

服务启动了。

我的问题是:

1) httpd.conf 文件中使用的语法/语言是什么?

2) 如何更改该行以使其编译并保留将F:/Bitnami/trac-1.0.9-0/apache2/bin 附加到环境变量PATH 的初衷?

3) 假设这适用于某些平台,为什么它不能在 Windows 上运行?

谢谢。

更新

就像回复说的问题PATH。然而,路径中有空格的事实似乎不是问题。不仅如此,我隔离了导致问题的 PATH 中的路径。就是这个"C:\tools\mkstools",一模一样。我去掉了引号,这使 httpd 能够启动。所以我还在挠头。为什么引号会导致问题?

【问题讨论】:

PATH 是系统路径吗,也许是使用PassEnv 检索的?您可能需要quote and escape 任何空格。 嗨,这里是 Bitnami 开发人员。我试图重现你的问题,但我没能,安装很顺利。好像你系统的PATH变量有问题,你之前修改过吗?您可以在命令提示符或访问控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量中查看运行 set PATH 的内容。 @RjOllos 是的,我能够确认这是问题所在。是的,你又是对的,我在所有带空格的路径周围都使用了引号,但这并不能自行解决。如何在 Windows 中转义空格?谢谢。 所以我猜"$PATH;F:/Bitnami/trac-1.0.9-0/apache2/bin;" 扩展为"C:\path\to\a;"C:\tools\mkstools";C:\path\to\b;F:/Bitnami/trac-1.0.9-0/apache2/bin;" 之类的东西,它可能被视为SetEnv 的3 个参数:"C:\path\to\a;"C:\tools\mkstools";C:\path\to\b;F:/Bitnami/trac-1.0.9-0/apache2/bin;"。我不确定应该如何处理引用的路径。我可能会调查他们是否可以逃脱或encoded。您可能想在Apache mailing list 上提问。 【参考方案1】:

对我来说,它通过将 $PATH 替换为 %PATH% 来工作。

【讨论】:

这是为我做的。谢谢!

以上是关于Windows 上的 Apache httpd 服务器无法启动的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10 上的 Apache 2.4.46 虚拟主机

Windows 上的 httpd.conf:找不到 API 模型结构 `php8_module`

PC 上的 Apache 不以未找到 ServerRoot 开头

PC 上的 Apache 不以未找到 ServerRoot 开头

Windows 上的 Apache 2.4、Python 和 Django

Linux启动httpd命令?