備忘録とかもろもろ

NP_Simplepie、simplepieをproxy内部から使用する

社内イントラにてNucleusを使用しておりますが、外部のRSSを取得する際に、旧版のNP_NewsfeedEXで表示させておりました。
ただ、うちの場合proxyサーバがありますので、別途別途RSS取得スクリプトを使用し、RSSを別途ダウンロードしておくというステップを踏む必要がありました。

しかし、サーバ移転もあって(今までは完全管理下のWindowsサーバだったが、移転サーバは管理外のLinux)、スクリプト内で直接外部RSSを取得しなければならなくなりました。

色々調べたところNP_NewsfeedEXの後継であるNP_Simlepieは高機能そうだったので、こいつなら何とかなるのかも…と調べてうまく行った結果をメモ。

とりあえず最新のNP_SimplepieSimplepieをダウンロードして、サーバにアップロードしてセットアップ(詳細はこちら

とりあえずローカルのRSSを表示して、NP_Simplepieの動作を確認(この時点でおかしい場合はサーバに必要なライブラリがあるかどうか等の確認が必要)。

ローカルのRSS表示に問題がなければ、proxyの設定を行います。
nucleus/plugins/simplepieフォルダにアップロードしたsimlepie.inc を開き、7613行目(version 1.1.1の場合)、

curl_setopt($fp, CURLOPT_URL, $url);

の上に以下の行を挿入。

curl_setopt($fp, CURLOPT_PROXY, "http://proxy.example.co.jp:8080");

上記"http://proxy.example.co.jp:8080"は使用しているプロキシサーバにあわせて記述を変更してください。

変更したsimlepie.incをアップロードして動作していることを確認。
以上で、プロキシ経由でNP_Simplepieが使用出来ますが、社外のRSSとローカルネットワークのRSSを混在させたい時には、上記の変更内容を

if(!preg_match("/^http:\/\/www\.example.\.co\.jp*/", $url)) { curl_setopt($fp, CURLOPT_PROXY, "http://proxy.example.co.jp:8080"); }

の様に、preg_matchを使ってローカルネットワークのURLではない場合のみproxyをセットするようにする必要があります。

2008年09月29日 12時42分12秒 藤咲記す - カテゴリ: 調べ物 , Nucleus備忘録 - 参照:8308回

TrackBack

トラックバック URI←この記事にトラックバックする際使用してください。
(右クリックからショートカットのコピーを選択)
このエントリにトラックバックはありません

コメント

コメントを書く

この記事を携帯で読む

この記事のQRコード