我使用以下命令在 debian 中设置了一个自定义环境变量:
$ export my_var=1
我想使用 php 读取这个变量值。我努力了 :
echo getenv('my_var');
如果我使用 php 命令从命令行调用 php 代码,则可以,但是当我使用 apache 访问 php 代码时,它不会回显任何内容。
为什么会这样?
我使用以下命令在 debian 中设置了一个自定义环境变量:
$ export my_var=1
我想使用 php 读取这个变量值。我努力了 :
echo getenv('my_var');
如果我使用 php 命令从命令行调用 php 代码,则可以,但是当我使用 apache 访问 php 代码时,它不会回显任何内容。
为什么会这样?
之所以如此,是因为您的控制台有自己的上下文和自己的环境变量,而 Apache 也有自己的。考虑this answer在apache中设置环境变量。
最近我写了一个库来从环境变量中获取值并解析为 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"));
好好享受。