重複の可能性:
$_ENV が空なのはなぜですか?
スクリプトで $_ENV を使用しようとしていますが、空の配列が返されます。コードは次のとおりです。
print_r($_ENV);
そして、ここに私が返すものがあります:
Array ( )
スクリプトは Linux サーバーで実行されています (管理者権限はありますが、自分でサーバーをセットアップしていません)。管理者または通常のユーザーとしてログインしているかどうかに関係なく、端末から env と入力すると、約 20 の個別の項目が表示されるため、環境は空ではありません。
過去に $_ENV を問題なく使用しました (ただし、しばらく経ちました)。私は何が欠けていますか?
解決:
php.ini を変更してもうまくいきませんでした。機能したのは次のとおりです。
httpd 構成ファイルまたは仮想ホスト構成ファイル (場合によっては同じファイル) を見つけ、環境変数ごとに (VirtualHost セクション内に) 以下を追加します。
SetEnv MY_ENV_VAR_1 test1
SetEnv MY_ENV_VAR_2 test2
アパッチを再起動します。
PHP スクリプトでは、次を使用します。
getenv('MY_ENV_VAR1')
これらの環境設定にアクセスします。SetEnv はこれらの変数を設定し、Apache に戻して使用できるようにします。既存のシェル環境変数を使用する場合は、次を Apache 構成ファイルまたは仮想ホスト ファイルに追加する必要があります。
PassEnv env_variable [env_variable]....
Apache とスクリプトで使用できるようにします。