无法在 Lua 代码中使用环境变量

我有一些 Lua 代码,我在我的 openresty nginx.conf 文件中使用。这个 Lua 代码包含以下行:

...
local secret = os.getenv("PATH")
assert(secret ~= nil, "Environment variable PATH not set")
...

仅仅出于测试目的,我尝试检查 PATH 变量是否设置,但出于某种原因,assert 语句没有通过。我在控制台上看到:

Environment variable PATH not set

然而,当我运行

$ echo $PATH

我看到,这个变量确实有一些值。那么,出了什么问题,我该怎么解决呢?

点赞
用户1442917
用户1442917

你需要告诉 nginx 使环境变量可用。从 env 指令的文档 中了解到:"默认情况下,nginx 会删除所有从父进程继承而来的环境变量,除了时区变量 TZ。该指令允许保留一些继承的变量、改变它们的值或者创建新的环境变量。

因此,在你的情况下,你需要在 nginx.conf 中指定 env PATH;

2017-01-23 06:46:30