【问题标题】:How can I setup an environment variable to hold a DSN for PHP?如何设置环境变量来保存 PHP 的 DSN?
【发布时间】:2016-01-11 19:14:01
【问题描述】:

我正在尝试根据this SO Post. 设置一个永久的“环境”变量

我将变量放在我的 .bash_profile 中,并且可以使用命令行从命令行访问它。

echo $VAR

但是,这是 PHP 需要的 DSN(DB 凭证)(与 Heroku 相同),我需要使用它来访问它

getenv() 或类似名称。

如果我从命令行运行env,我看不到它列出来。

似乎有不同类型的环境变量,我用错了。

我应该如何正确地做到这一点?

【问题讨论】:

    标签: php heroku env


    【解决方案1】:

    您的网络服务器不会运行您的 shell,因此它不会运行 .bash_profile。将环境变量导入 Apache 有多种技巧,但它们都依赖于对 Web 服务器的管理访问权限,而在低端的 Godaddy 主机上是无法获得的。

    如果您要解释为什么要尝试将环境变量导入 Apache,您拥有什么类型的主机以及您对服务器的访问权限,我们可能会提供更好的建议。有些模块公开了对 Apache 操作环境变量的访问权限(例如 mod_env),但这些模块可能不可用/不合适。也可以从 .htaccess 文件中获取数据(和代码)到 PHP 中,但同样不能说这是否符合您的要求。

    【讨论】:

    • 为了一致性和相关性。我部署到多台服务器,这就是我想要的方式。我更喜欢将服务器上的凭据保存在 git 不跟踪的文件中。显然我可以创建一个文件并从中读取......但我希望这不是一门火箭科学,我可以像 Heroku 一样做。当然,我可以将它保存在 repo 中并 .gitignore 它,但是,我仍在学习 git 并且不信任它。
    • 我可以把它放在我当然可以访问的 .htaccess 中,但这违背了目的。我希望它在操作系统文件中。我只是觉得这样更安全。
    • 如果你的目标是让它远离你,那么把它放在文档根目录之外和你的项目之外。只需使用包含文件。
    • 嗯,是的,但我想做与 Heroku 相同的事情,并将其保留为环境变量,除非我无权在共享帐户上执行此操作。
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 2013-11-10
    • 2019-07-02
    相关资源
    最近更新 更多