6

実行する環境に特定のパスを設定する必要があるスクリプトがいくつかあります。これらの場所を含めるようにパスを編集したいと思います。これらは、実行パスに追加したい場所です。

 $JAVA_HOME = "/usr/java/jdk1.6.0_31";
 $ANT_HOME = "/usr/apache-ant-1.8.3";
 $ANT_BIN = "$ANT_HOME/bin";
 $JAVA_BIN = "$JAVA_HOME/bin";
 $ADDPATH=$JAVA_HOME . ":" . $ANT_HOME . ":" . $ANT_BIN .":" . $JAVA_BIN . ":" . $PATH;

そして、私はputenvを使用しました

 putenv("JAVA_HOME=" . $JAVA_HOME);
 putenv("ANT_HOME=" . $ANT_HOME);
 putenv("ANT_BIN=" . $ANT_BIN);
 putenv("JAVA_BIN=" . $JAVA_BIN);
 putenv("PATH=".$_ENV["PATH"].":".$ADDPATH);

しかし、私がするとき

echo getenv("PATH");

私は得る

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2 つのクエリがあります: (a) パス変数を必要な値に設定する方法 (b) これらの場所をサーバー環境の一部として追加する方法 (または場所) はありますか (php.ini または apache 内) configs ) スクリプトを使用してこれらの編集を行うのではなく、

4

2 に答える 2

1

とを使用apache_setenv()してみてくださいapache_getenv()

于 2012-05-26T07:05:41.303 に答える
1

PHPで環境変数を設定するには、公式のputenvドキュメントを参照してください。

サーバー環境に設定を追加します。環境変数は、現在のリクエストの期間中のみ存在します。リクエストが終了すると、環境は元の状態に復元されます。

特定の環境変数を設定すると、セキュリティ違反が発生する可能性があります。safe_mode_allowed_env_varsディレクティブには、コンマで区切られたプレフィックスのリストが含まれています。セーフモードでは、ユーザーは、名前がこのディレクティブで指定されたプレフィックスで始まる環境変数のみを変更できます。デフォルトでは、ユーザーはPHP_で始まる環境変数のみを設定できます(例:PHP_FOO = BAR)。注:このディレクティブが空の場合、PHPはユーザーに任意の環境変数を変更させます!

safe_mode_protected_env_varsディレクティブには、エンドユーザーがputenv()を使用して変更できない環境変数のコンマ区切りリストが含まれています。これらの変数は、safe_mode_allowed_env_varsが変更を許可するように設定されている場合でも保護されます。

非常に特殊なケースではないにしても、それは間違いなく進むべき道ではないと思います。一方、httpd構成での環境変数の設定は、モジュールmod_envSetEnvディレクティブを使用して非常に簡単です。

SetEnvディレクティブ

Description:  Sets environment variables 
Syntax:       SetEnv env-variable value
Context:      server config, virtual host, directory, .htaccess
Override:     FileInfo 
Status:       Base 
Module:       mod_env 

内部環境変数を設定します。この変数は、Apache HTTPサーバーモジュールで使用可能になり、CGIスクリプトとSSIページに渡されます。

SetEnv SPECIAL_PATH /foo/bin

このディレクティブによって設定される内部環境変数は、アクセス制御やURIからファイル名へのマッピングなど、ほとんどの初期の要求処理ディレクティブが実行された後に設定されます。設定している環境変数が、RewriteRuleディレクティブなどの処理のこの初期段階への入力として意図されている場合は、代わりにSetEnvIfを使用して環境変数を設定する必要があります。

ああ、メインのhttpd.confから、仮想のホスト構成まで、あるいはFileInfoオーバーライドが許可されている場合のhtaccessでも、ほとんどどこにでも行くことができ、非常に用途が広いことがわかります。

参照:

于 2012-05-26T07:05:49.710 に答える