php7.1からphp7.3にバージョンアップしたら
$_ENV
というスーパーグローバル変数を使って環境変数を取得している箇所でエラーが起こるようになりました。
どうやら$_ENV自体が空で取得できていないようだったので、
調査してみたところ
$_ENV
はphp.ini の variables_order
という設定に E
が含まれていないと使えない。ということでした。
含まれていないと $_ENV は単に空の配列になるようです。
Comments for this page seem to indicate getenv() returns environment variables in all cases.
For getenv() to work, php.ini variables_order must contain 'E'.
ということでphp.initの値を確認したら
variables_order = "GPCS"
となっていたのでEをつけたら読み込めるようになりました。
variables_order = "EGPCS"
そもそもENVは本番サーバなどでは推奨されないようです。
これは推奨としてphp7.3のデフォルト値なのか分かりませんが、パフォーマンスにも影響してくるようですね。