如何在EC2实例上使用PHP设置和检索环境变量

7 浏览
0 Comments

如何在EC2实例上使用PHP设置和检索环境变量

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

我有一个运行Bitnami WordPress网站的EC2实例。我通过ssh登录到服务器并在/etc/environment中添加了环境变量:

export VARIABLE_NAME=example_value

在前端中,我使用以下php代码来检索该值:

$env_var = $_ENV["VARIABLE_NAME"];

但它返回空白。

我还尝试过以下代码:

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

但它只返回{environment: false}。

非常感谢任何帮助。

0
0 Comments

问题的原因是当作者重新启动apache服务器时,它会将.htaccess文件覆盖为默认状态,导致作者所做的所有更改都会消失。

解决方法是将环境变量添加到wp-config.php文件中,并使用define('ENV_VARIABLE','VALUE');将其定义。然后,可以通过$value = ENV_VARIABLE;来使用该值。

作者提到不理解为什么在重新启动时Apache会覆盖.htaccess文件,这没有道理。此外,在对htaccess文件进行更改时,并不需要重新启动Apache。

原文链接:stackoverflow.com/questions/142559/…

0
0 Comments

问题的原因是在EC2实例上设置环境变量时,将其写入.htaccess文件,但在重新启动Apache后,环境变量会从.htaccess文件中消失。

解决方法是将环境变量直接设置在EC2实例的环境中,而不是通过.htaccess文件。以下是解决方法:

1. 登录到EC2实例。

2. 打开终端或SSH客户端。

3. 输入以下命令将环境变量添加到实例环境中:

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

4. 保存并关闭终端或SSH客户端。

5. 在PHP文件中使用以下代码来检索环境变量:

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

通过将环境变量直接设置在EC2实例的环境中,可以确保在重新启动Apache后,环境变量仍然存在,并且可以通过PHP的getenv()函数轻松检索到。这种方法避免了.htaccess文件中环境变量消失的问题。

0