我有一些 Lua 代码,在我的 openresty nginx.conf 文件中使用。此 Lua 代码包含以下几行:
...
local secret = os.getenv("PATH")
assert(secret ~= nil, "Environment variable PATH not set")
...
出于测试原因,我尝试检查 PATH 变量是否已设置,但由于某种原因,断言语句未通过。我在控制台中看到:
Environment variable PATH not set
但是,当我运行这个
$ echo $PATH
我明白了,这个变量确实有一定的值(value)。那么,这有什么问题以及如何解决它?
最佳答案
您需要告诉 nginx 使环境变量可用。来自 docs for the env
directive :“默认情况下,nginx 会删除从其父进程继承的所有环境变量(TZ 变量除外)。该指令允许保留一些继承的变量、更改它们的值或创建新的环境变量。”
因此,在您的情况下,您需要在 nginx.conf 中指定 env PATH;
。
关于nginx - 无法在Lua代码中使用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41800071/