0

我使用以下命令在 debian 中设置了一个自定义环境变量:

$ export my_var=1

我想使用 php 读取这个变量值。我努力了 :

echo getenv('my_var');

如果我使用 php 命令从命令行调用 php 代码,则可以,但是当我使用 apache 访问 php 代码时,它不会回显任何内容。

为什么会这样?

4

2 回答 2

1

之所以如此,是因为您的控制台有自己的上下文和自己的环境变量,而 Apache 也有自己的。考虑this answer在apache中设置环境变量。

于 2013-09-09T09:16:53.230 回答
0

最近我写了一个库来从环境变量中获取值并解析为 PHP 数据类型。该库可用于将环境变量解析为 PHP 数据类型(如转换为整数、浮点数、空值、布尔值),解析 JSON 字符串等复杂数据结构,以及更多社区的贡献。

该库可在此处获得:https ://github.com/jpcercal/environment

重新启动 Apache 服务器并将环境变量加载到操作系统后,将环境变量放入“/etc/environment”和“/etc/apache2/envvars”:

# source /etc/environment
# source /etc/apache2/envvars

如果您使用 CLI 运行应用程序,则基本上导出变量:

export YOUR_ENV_VARIABLE_NAME="yourValue"

并从环境变量(独立于环境 CLI、Apache、Nginx、PHP 内置服务器等)中获取值来执行此操作:

<?php
// ...
require "vendor/autoload.php";
// ...
var_dump(Cekurte\Environment\Environment::get("YOUR_ENV_VARIABLE_NAME"));

好好享受。

于 2015-11-04T21:03:04.323 回答