我在 Ubuntu 中使用 Apache 已经是过去式了。有一个envvars
文件包含 Apache 服务使用的环境变量。我无法为 Windows 找到这样的文件。
我发现有两种方法可以处理它。我发现 Apache 读取了 Windows 环境变量。但我不喜欢这样,因为它们是全球性的,而不是特定于应用程序的。
我发现的其他选项是创建一个 .bat 文件,设置环境变量,然后启动 .bat 文件httpd.exe
。但问题在于它不适用于 Apache 服务。
我发现的另一个选择是使用nssm。它允许使用特定于服务的环境变量创建自定义服务。但是AH00141: Could not initialize random number generator
如果我使用它,我会得到错误。
我可以使用任何其他替代选项吗?
您可以使用 Apache 中的 SetEnv 指令来设置您自己的特定于您的应用程序的环境变量。
更多详细信息在这里https://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv 您可以将这些值放入您的虚拟主机或 httpd.conf
我最终编写了一个替换
httpd.exe
. 我重命名httpd.exe
为httpd2.exe
并使用这个包装器httpd.sh
来执行它。它基本上是在启动 apache 服务之前临时设置系统环境变量。服务启动后,它会删除它们。