2017-05-09 6 views
0

(アパッチ)setEnvを= PROD
を実行中の端末からnullを返すと端末(MAC)から実行している間(のgetenv()関数を使用して)PHPでENVに私はhttpd.confで定義されたPHPスクリプト

を呼び出すGETENV php file.php envはNULL
ですが、Webページから実行したときに動作しています。 "prod"を印刷する

+2

apacheはsapiですが、cliはまったく異なるものです。 – hassan

+0

Apacheの場合は 'php.ini'、PHPの場合はもう一つのCLIがあります – RiggsFolly

+0

Webサーバーを完全に回避する方法でPHPスクリプトを実行すると、Webサーバーレベルで設定したものは効果がありませんライン) - それは本当に驚きではありません。 – CBroe

答えて

0

macOSとLinuxのコンソール(ターミナル)で実行するプログラムの環境を設定する方法はいくつかあります。 (手順は、Windows上で似ていますが、構文が異なります。)

あなたはそれだけで、コマンドラインの現在の実行のために値prodで環境変数envを設定するには、コマンドラインの前にenv=prodを置くことができます。

$ env=prod php -f script.php 

別のコマンドラインとしてexport env=prodを使用できます。コンソールで実行しているシェルの現在の実行について、値envに値prodを設定します。その前にexportキーワード(あなたがシェルまたは設定解除の変数を閉じるまで)今からそれが起動するすべてのプロセスに変数を渡すようにシェルに指示します:

$ export env=prod 
$ php -f script.php 

あなたは永久に変数を設定したい場合は、行export env=prod~/.profileまたは~/.bashrcに置くか、または好みのシェルの初期化スクリプト(bashでない場合)を入れます。その後起動するシェルのすべてのインスタンスが初期化スクリプトを実行し、の値を持つ変数envを環境内に設定し、シェルが起動する子プロセスにエクスポート可能としてマークします。

関連する問題