web-dev-qa-db-ja.com

Luaコードで環境変数を使用できません

Openrestynginx.confファイルで使用するLuaコードがいくつかあります。このLuaコードには次のような行が含まれています。

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

テストの理由で、PATH変数が設定されているかどうかを確認しようとしましたが、何らかの理由でassertステートメントが渡されません。コンソールに表示されます:

環境変数PATHが設定されていません

しかし、これを実行すると

$ echo $PATH

この変数には確かに何らかの値があることがわかります。それで、それの何が問題であり、どうすればそれを修正できますか?

12
Jacobian

環境変数を使用可能にするようにnginxに指示する必要があります。 envディレクティブのドキュメント : "デフォルトでは、nginxは、TZ変数を除く、親プロセスから継承されたすべての環境変数を削除します。このディレクティブを使用すると、継承された変数の一部を保持し、変更することができます。それらの値、または新しい環境変数の作成。」

したがって、あなたの場合、nginx.confでenv PATH;を指定する必要があります。

14
Paul Kulchenko