5

php で getenv 関数を使用して取得できるように、Apache に事前定義済みの環境の一部を登録してもらいたいだけです。これどうやってするの?root を使用して /etc/profile.d/foo.sh を export FOO=/bar/baz で追加し、apache を再起動してみました。

4

4 に答える 4

6

環境変数は、Unix のプロセスによって継承されます。/etc/profile.d 内のファイルは、ログイン時にのみ (サブシェルではなく、現在のシェルで) 実行されます。そこで値を変更してからプロセスを再起動するだけでは、環境は更新されません。

考えられる修正:

  • ログアウト/ログインしてからApacheを起動
  • ファイルを source:# . /etc/profile.d/foo.shし、apache を再起動します。
  • apache init スクリプトでファイルを読み込みます

また、自分ではなく/etc/profile.d/Apache が開始されたときにソースが供給されていることを確認する必要があります。init

最適な修正は、使用しているディストリビューションによっても異なる場合があります。これは、構成に異なるスキームが使用されているためです。

于 2008-09-22T10:56:23.863 に答える
0

構成ファイル(/etc/httpd/conf.d/*.conf、.htaccess ...)でSetEnvを使用できます。さらに、それらを/ etc / sysconfig / httpd(RPMベースのディストリビューション上)で定義し、エクスポートできるはずです(注:テストされていません)。

注:一部のディストリビューションが、システム構成に関する限り、Apacheなどの公的にアクセス可能なサービスから可能な限り隠そうとしても驚かないでしょう。そうでない場合は、将来のバージョンでこれを開始する可能性があります。したがって、これを明示的に行うことをお勧めします。Apacheとシェルの間でこのような設定を共有する必要がある場合は、/ etc / sysconfig/httpdから/etc/profile.d/yourprofile.shを入手してみてください。

于 2008-09-22T16:03:18.133 に答える
0

Apache 構成ファイルを使用すると、サイトごとに環境変数を設定できます。

したがって、Web サーバーが 2 つの論理サイトからページを提供している場合、サイトごとに同じ環境変数を別々に設定して、PHP の反応を変えることができます。

詳細については、Apache mod_envを参照してください。

于 2008-09-24T18:24:31.973 に答える