以下のコマンドを使用して、debian でカスタム環境変数を設定しました。
$ export my_var=1
この変数の値をphpを使って読みたいです。私が試してみました :
echo getenv('my_var');
php コマンドを使用してコマンドラインから php コードを呼び出すと問題ありませんが、apache を使用して php コードにアクセスすると、何もエコーしません。
なぜそうなのですか?
以下のコマンドを使用して、debian でカスタム環境変数を設定しました。
$ export my_var=1
この変数の値をphpを使って読みたいです。私が試してみました :
echo getenv('my_var');
php コマンドを使用してコマンドラインから php コードを呼び出すと問題ありませんが、apache を使用して php コードにアクセスすると、何もエコーしません。
なぜそうなのですか?
これは、コンソールが独自の環境変数と独自の Apache を持つ独自のコンテキストを持っているためです。Apache で環境変数を設定するには、この回答を検討してください。
最近、環境変数から値を取得し、PHP データ型に解析するためのライブラリを作成しました。このライブラリを使用して、環境変数を PHP データ型に解析したり (integer、float、null、boolean へのキャストなど)、JSON 文字列などの複雑なデータ構造を解析したり、コミュニティの貢献によりさらに多くのことを行うことができます。
ライブラリはこちらから入手できます: https://github.com/jpcercal/environment
環境変数を「/etc/environment」と「/etc/apache2/envvars」に入れ、Apache サーバーを再起動して環境変数を運用システムにロードします。
# source /etc/environment
# source /etc/apache2/envvars
CLI を使用してアプリケーションを実行している場合は、基本的に変数をエクスポートします。
export YOUR_ENV_VARIABLE_NAME="yourValue"
環境変数から値を取得するには (環境 CLI、Apache、Nginx、PHP ビルトイン サーバーなどとは無関係)、次のようにします。
<?php
// ...
require "vendor/autoload.php";
// ...
var_dump(Cekurte\Environment\Environment::get("YOUR_ENV_VARIABLE_NAME"));
楽しめ。