• ベストアンサー

OSの環境変数をPHPで取得する方法

PHPでOSの環境変数に設定されている値を取得したいです。 PHPはApacheの環境変数しか取得できないみたいです。 APACHEのDocumentから以下の方法を見つけました。 ----------------------------------------------------------- httpd プロセスを起動したシェルの環境から CGI スクリプトと SSI ページに渡す環境変数を一つ以上指定します。 例 PassEnv LD_LIBRARY_PATH ----------------------------------------------------------- httpdプロセスを起動したシェルとあるのですが、Apapcheユーザの ホームディレクトリはありません。 この場合どこに設定すればよいでしょうか? /etc/bachrcや/etc/profile に設定してもダメでした。 ApacheDocumentの下記の方法だとgetenv()で取得できます。 ------------------------------------------------------------ 環境変数を設定し、それを CGI スクリプトと SSI ページに渡すようにします。 例 SetEnv SPECIAL_PATH /foo/bin ------------------------------------------------------------ なので最初の方法でもいけるのではないかと思います。 環境 PHP:521 Apache:2.0.52 OS:RedHatEL4.4

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

そもそも、「OSの環境変数」なるものは存在しません。 環境変数は個々のプロセスの属性です。普通は親プロセスから子プロセスへは継承されますが。 Apacheプロセスに環境変数を継承したいなら、その起動元プロセスである、 /etc/init.d/httpd とか /etc/init.d/apache とか(OSの種類により異なる)の中で設定すればいいでしょう。

その他の回答 (1)

  • vaio09
  • ベストアンサー率37% (756/2018)
回答No.1

<? phpinfo(); ?> というソースを実行して確認できませんか?

rallys
質問者

補足

ご回答ありがとうございます。 phpinfo()で確認しております。 PassEnv LD_LIBRARY_PATH の場合、Apache Environment に表示されませんが SetEnv SPECIAL_PATH /foo/bin の場合は、Apache Environmentに表示されます。