【问题标题】:How to set and retrieve environment variables using PHP on EC2 instance如何在 EC2 实例上使用 PHP 设置和检索环境变量
【发布时间】:2017-10-18 15:35:45
【问题描述】:

我在尝试在我的 EC2 实例中设置环境变量然后使用 php 检索它们时遇到问题。

所以我有一个运行 Bitnmai Wordpress 站点的 EC2 实例。我 ssh 进入服务器并在其中添加了环境变量 /etc/environment

export VARIABLE_NAME=example_value

在前端,我的php要检索的值是:

<?php $env_var = $_ENV["VARIABLE_NAME"];

但它返回空白

我也试过

$env_var = array('environment' => getenv("VARIABLE_NAME"));

但这只会返回{environment: false}

任何帮助将不胜感激

【问题讨论】:

  • 您需要养成accepting answers 的习惯,它可以帮助您解决问题。您将获得积分,并鼓励其他人帮助您。

标签: php amazon-ec2 environment-variables bitnami


【解决方案1】:

我通常在 .htaccess 文件中为 EC2 实例设置环境变量。例如,这里是 MySQL 连接信息,稍后由配置文件使用:

SetEnv DBL "mysql:dbname=rocknroll;host=rocknroll.local;port=3306"
SetEnv DB_USER "Elvis"
SetEnv DB_PASS "1amth3K1ng"

然后在我的 PHP 文件中我这样做:

define('DBL', getenv('DBL'));
define('USER', getenv('DB_USER'));
define('PASS', getenv('DB_PASS'));

这使用了 PHP 的 getenv() 函数,使变量易于检索。

【讨论】:

  • 感谢您的回复!我会试试这个。当谈到这个服务器端配置的东西时,我是一个完全的新手。问题虽然。 .htaccess 文件位于我的 EC2 实例上的什么位置?它在我的 wordpress 目录中吗?
  • 所以我能够找到 .htaccess 并使用上面提到的上述方法添加了我的环境变量;但是,它仍然无法正常工作。我尝试重新启动 apache 以使环境变量发生,但随后环境变量从 .htaccess 文件中消失了。有人对此有任何见解吗?
  • 从 .htaccess 文件中消失?
【解决方案2】:

因此,当我重新启动 apache 服务器时,它会将 .htaccess 文件覆盖为其默认状态,并且我的所有更改都将消失。

所以我找到了一个适合我需要的解决方案。我将环境变量添加到 wp-config.php 文件define('ENV_VARIABLE','VALUE'); 然后我就可以通过$value = ENV_VARIABLE;使用该值了

感谢大家的帮助!

【讨论】:

  • 我不明白为什么 Apache 在重新启动时会覆盖 .htaccess 文件。这是没有意义的。此外,当您更改 htaccess 文件 stackoverflow.com/questions/142559/… 时,您不必重新启动 Apache
猜你喜欢
  • 2021-04-26
  • 2016-03-16
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 2020-11-04
  • 2015-04-22
  • 2016-01-26
  • 2015-04-27
相关资源
最近更新 更多