gpt4 book ai didi

php - 如何使环境变量可用于 Apache,作为服务启动?

转载 作者:行者123 更新时间:2023-12-04 14:14:19 24 4
gpt4 key购买 nike

我知道将一些环境变量添加到 /etc/environment将使它们在系统范围内可用,并将它们添加到 /etc/profile , ~/.bashrc或等价物,将提供给特定用户......然而,所有这些都适用于交互式 session 。当 Apache 作为 systemd 启动时服务,它是一个非交互式 session ,因此它看不到那些环境变量。我可以让 Apache 解析 .env包含以下行的文件

env1=foo
env2=bar
...

然后可以在我的 PHP 代码中使用 $_SERVER['foo'] 访问它们等 当然,我想为其他 systemd 实现同样的目标服务也是如此,那么是否有任何特定文件为服务提供环境变量?

最佳答案

您可以使用 SetEnv站点的 Apache 配置文件中的指令来为该站点设置环境变量,如下所示:

SetEnv DATABASE_NAME foo

这需要进入 <VirtualHost>指示。

重新启动服务器后,应该可以通过 $_ENV 访问这些数据。 superglobal 或 getenv() .这种方法的缺点是,如果您的应用程序包含任何不是由 Apache 执行的内容,例如队列工作器或控制台命令,则除非您在适当的位置(例如您的 .bashrc)。

或者你可以使用像 DotEnv 这样的库.

关于php - 如何使环境变量可用于 Apache,作为服务启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48701187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com