PEARのライブラリを呼ぶとエラーになる件について

技術関係

PEAR/Exception.phpを継承しているクラスでPEARが呼べないというエラー
Warning: require_once(PEAR/Exception.php) [function.require-once]: failed to open stream: No such file or directory in HTTP/Request2/Exception.php on line 47
3Fatal error: require_once() [function.require]: Failed opening required ‘PEAR/Exception.php’ (include_path=’…:’) in HTTP/Request2/Exception.php on line 47

・Exception以外を指定しても同様にエラー
・PEARへのパスは設定済み
・該当ファイルまでにパーミッションも問題なし

原因

PHPがファイルを読み出せる範囲を制限するopen_basedirディレクティブにPEARが存在するディレクトリが指定されていなかった

1.phpinfo()にてopen_basedirを確認するとディレクトリ指定から漏れていた
2.php.iniを確認すると該当の記述有り

対応

ディレクティブの変更は、PEARのパスを追記する or 値をnoneで上書きする。必要と状況に応じて選択すること

以下の方法にて対応可能(ただし、いずれもApacheの再起動と設定変更が必要)
・httpd.confにて上記のディレクティブを変更する
・php.iniにて上記のディレクティブを変更する

タイトルとURLをコピーしました