- ベストアンサー
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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そもそも、「OSの環境変数」なるものは存在しません。 環境変数は個々のプロセスの属性です。普通は親プロセスから子プロセスへは継承されますが。 Apacheプロセスに環境変数を継承したいなら、その起動元プロセスである、 /etc/init.d/httpd とか /etc/init.d/apache とか(OSの種類により異なる)の中で設定すればいいでしょう。
その他の回答 (1)
- vaio09
- ベストアンサー率37% (756/2018)
<? phpinfo(); ?> というソースを実行して確認できませんか?
補足
ご回答ありがとうございます。 phpinfo()で確認しております。 PassEnv LD_LIBRARY_PATH の場合、Apache Environment に表示されませんが SetEnv SPECIAL_PATH /foo/bin の場合は、Apache Environmentに表示されます。