- ベストアンサー
PEARのHTTP_Requestをインストールする方法と表示されない原因・調査方法
- さくらのレンタルサーバーにPEARのHTTP_Requestをインストールし、http://pear.php.net/manual/ja/package.http.http-request.intro.phpにあった、「yahoo.com の内容を取得し、それを表示する」というスクリプトを実行したのですが、何も表示されません。
- 状態は次の通りです:/home/user/.cshrcにset path = (~/pear/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)と設定されています。/home/user/www/php.iniのinclude_pathは「.:/php/includes:/home/user/pear/PEAR」となっています。%pear listコマンドで確認すると、HTTP_Requestが1.4.4のバージョンでインストールされていることがわかります。
- ブラウザからhttp://user.sakura.ne.jp/の/home/user/www/test_yahoo.php(属性:755)にアクセスしていますが、何も表示されません。原因や調査方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
さくらインターネットの仕様は解らないのですが、 > /home/user/www/php.ini > include_path = ".:/php/includes:/home/user/pear/PEAR" とか > ブラウザからhttp://user.sakura.ne.jp/の > /home/user/www/test_yahoo.php(属性:755)に > アクセスしていますが、何も表示されません。 などの作業をされているところを見ると、CGIとして動作している? PEARがインストールされたのは /home/user/pear/PEAR ここ? % ls /home/user/pear/PEAR して HTTP とか HTTP.phpは存在している? 実は /home/user/pear を php.ini に追加するんだったりして。 #PEAR は PEAR という名前のライブラリがあるので、ちょっとそんな気がしてきた。 でも、インストールがうまくいっていないと require_once の行でエラーになるはずですので、画面かerror_log にその旨表示されるはずですね。 #エラー表示が抑制されているのかしらん? 以下のソースを試してみて、「PEARライブラリの読み込みに失敗しました」が表示された場合は、PEARがインストールされた先と include_path の参照先が一致しているか確認してみてください。 <?php //set_include_path( get_include_path() .PATH_SEPARATOR .realpath( '../lib/PEAR' ) ); if( FALSE === @include_once('HTTP/Request.php') ) { echo 'PEARライブラリの読み込みに失敗しました<br/>'; echo 'include_path の値を確認してください。<br/>'; echo 'display_errors も確認するとしあわせになるかも<hr/>'; phpinfo(); die; } else { PEAR::setErrorHandling( PEAR_ERROR_PRINT ); $req =& new HTTP_Request("http://www.yahoo.co.jp/"); if( !PEAR::isError( $req->sendRequest() ) ) { echo $req->getResponseBody(); } else { echo '<pre>'; var_dump( $req ); echo '</pre>'; } }
その他の回答 (1)
- NARH
- ベストアンサー率82% (88/107)
> if (!PEAR::isError($req->sendRequest())) { エラーでなかったら表示するので、エラーなら >} >?> 何も表示しないですね。。。 とりあえず。エラーハンドリングを入れてみてはどうでしょう。 <?php require_once "HTTP/Request.php"; PEAR::setErrorHandling( PEAR_ERROR_PRINT ); $req =& new HTTP_Request("http://www.yahoo.co.jp/"); if( !PEAR::isError( $req->sendRequest() ) ) { echo $req->getResponseBody(); }
お礼
遅くなりましたが、ご回答ありがとうございます。 やってみたのですが、やはり何も表示されません。 PEARの設定がマズイのでしょうか? 試しにxamppを入れて同じスクリプトを実行したら、簡単に表示されました。。。
お礼
大変遅くなりましたが、ご回答ありがとうございます。