ここで質問/回答を読みましたが、 /etc/environmentに変数を設定する方法がわかりません。ファイルを編集した場合、マシンを再起動するか、単に現在のユーザーをログアウトする (または新しいユーザーにログインする) 必要がありますか?
マシン上の Web サイトが「開発」モードまたは「テスト」モードであることを示すグローバル変数を設定したいと考えています。プロジェクトごとにこれを設定する必要はありません (PHP、Java/Tomcat、NodeJS などを使用するかどうか)。(Apacheの場合)次の方法で環境変数を設定できることを認識しています:
- phpから直接
putenv()
(ファイルがどのサーバー上にあるかを把握しようとするロジックを避けたいので、これは役に立たないようです) - .htaccess を使用する
SetEnv ENVIRONMENT 'local'
(これには、サーバーごとにこのファイル/コードを複製する必要があり、理想的ではありません) - Virtual Host ディレクティブを使用する
SetEnv ENVIRONMENT 'local'
(仮想ホストを使用している場合、ほぼすべてのケースで使用していますが、コードを何度もコピー/貼り付けする必要があります) - httpd-conf 内
SetEnv ENVIRONMENT 'local'
(これは apache にのみ適用されます。NodeJS サーバーにも適用したいと考えています)
#4 ができないと言っているわけではありません (そして #3 を NodeJS サーバーに選択的に適用します)。しかし、これは /etc/environment を使用する正当な理由だと思います。上で述べたように、(最初にファイルを作成した後に) ファイルを編集し、次の組み合わせを試しましたが、どれもうまくいかないようでした:
ENVIRONMENT='local'
ENVIRONMENT=local
export ENVIRONMENT='local'
export ENVIRONMENT=local
次の出力に変数が見つからなかったため、それらのどれも機能しなかったと言います。
print_r($_SERVER);
print_r($_ENV);
echo(getenv('ENVIRONMENT'));