我在 debian 中使用以下命令设置了一个自定义环境变量:
$ export my_var=1
我想使用 php 读取这个变量值。我试过:
echo getenv('my_var');
如果我使用 php 命令从命令行调用 php 代码,那没关系,但是当我使用 apache 访问 php 代码时,它不会回显任何内容。
为什么会这样?
之所以如此,是因为您的控制台有自己的上下文,有自己的环境变量,而 Apache 有自己的上下文。考虑这个答案来设置Apache中的环境变量。
最近我写了一个库来从环境变量中获取值并解析为 PHP 数据类型。该库可用于将环境变量解析为 PHP 数据类型(如转换为整数、浮点数、null、布尔值),解析复杂的数据结构,如 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"));
享受它。