【问题标题】:Set json file as environment variable将json文件设置为环境变量
【发布时间】:2020-11-16 08:00:35
【问题描述】:

请我有分步说明将 authentication.json 文件设置为环境变量,而不是将 json 文件放在我的项目位置 例如:

$jsonAuth = getenv('JSON_AUTH');

使用 Apache 运行 CentOS Linux 7.9.2009

【问题讨论】:

  • 您能否更详细地解释一下您正在尝试做什么以及究竟什么不起作用?

标签: php environment-variables centos7 google-sheets-api


【解决方案1】:

理想情况下,您希望将 json 编码为 base 64。因为 base64 摆脱了需要转义的可打印字符,所以更容易。之后,您可以在 PHP 中执行以下操作:

$jsonAuth = json_decode(base64_decode(getenv('JSON_AUTH')), true);

【讨论】:

    【解决方案2】:
    1. 确保您已安装 mod_env(通常是,但要加倍 检查这个)。
    2. 为您的应用程序找到<VirtualHost>,并添加SetEnv JSON_AUTH your_token_here,以及您需要的许多其他身份验证变量 需要设置。
    3. 重新加载 Apache(apachectl -k graceful 或通过 init.d)。
    4. 使用$jsonAuth = apache_getenv('JSON_AUTH');读出变量。

    【讨论】:

    • 请记住仅将整个 JSON 字符串设置为环境变量的选项,然后在您的应用程序中使用 json_decode(apache_getenv('JSON_AUTH')); 之类的内容读取它。根据该字符串的复杂程度或大小,这可能比为凭据中的每个变量单独设置 SetEnv 更容易。这完全取决于您。
    • 谢谢。当你说 find - 你是指编辑我的 Apache 配置文件吗?并将 SetEnv JSON_AUTH your_token_here 添加到 之间的配置文件中? “your_token_here” - 是指我的 JSON 对象吗?
    • 没错。 your_token_here 只是一个示例占位符。您可以在其中插入整个 JSON。只要确保你正确地逃避了一切。我不是其他人建议的 base64 编码所有内容的忠实粉丝,因为这使得调试和版本控制变得更加困难。此外,你不会通过躲避工作来学习任何东西;)。
    猜你喜欢
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2015-09-03
    • 2013-01-29
    • 2015-02-06
    相关资源
    最近更新 更多