Home> programming > VineLinux/Apache/PHP4.4でFreshReaderクローラを動かしていてPHP5へ移行したら

VineLinux/Apache/PHP4.4でFreshReaderクローラを動かしていてPHP5へ移行したら

  • December 3, 2007 1:27 AM
  • programming

フレッシュリーダ(Fresh Reader)のクローラをCronで設定してあるのに動かなくなった、というお話。



2007Dec01
ゴムチューブで身体を虐めてみたり。
RSSを読んでるtwitter.comからの配信が急に来なくなってびびる。
→んー、RSS配信が調子悪いのかな? けど誰も文句云ってないっぽいなぁ。

2007Dec02
念のため、Twitterのフィード購読先を更新してみた。けど新着来ない。
しかも他のフィードも新着が来てない。でもウェブインタフェースから手動更新は出来るみたいだ。
→あれ? これもしかしてクローラ動いてないんじゃない?

Cronログを見るのが面倒だったので、取り敢えずデーモンからのメールを読んでみる。
Cronは動いてるっぽい、けどメールの本文に謎のメッセージが。
<html><head><META HTTP-EQUIV="refresh" CONTENT="0;URL=ioncube.php"></head>click<body><a href="ioncube.php">here</a></body></html>

...何だこのメッセージ。今まで見たこと無いぞ。

取り敢えずSSHでサーバに入って直接clawler.phpを叩いてみる。
$ sudo -u (Apacheのユーザ) /usr/bin/php -f /(path_to_freshreader)/crawler.php
<html><head><META HTTP-EQUIV="refresh" CONTENT="0;URL=ioncube.php"></head>click<body><a href="ioncube.php">here</a></body></html>

同じメッセージ出たー!
ioncube.phpってスクリプトのソースをゴニョゴニョする処理を担当してる奴だよね...ということでgoogle検索して下記サイトの情報を発見。

わんこ日記(2006-12)

[Debian] FreshReaderのクローラーが止まる。
https://on-o.com/page/diary/?date=200612

PHP5を動かしていると拙いのか?
そういや金曜の夜にapt-get install php5してみたような...
ということでPHPのバージョンを確認してみる。
$ /usr/bin/php -v
PHP 5.*.* (cli) (built: Nov 23 2007 12:18:59)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

一方FreshReaderのシステム環境を見ると確かにPHPのバージョンが4.4系のまま。
あー...なるほど。

リンク先のやり方と同様に拡張機能をロードしてやる。
ただしDebianじゃなくてVineを使っているためphp.iniの場所が少し違う。
vi /etc/php5/php.ini してから、↓みたいなのを追記。
;Ad-hoc loading of an extension to enable clawler.php for freshreader
zend_extension = /(path_to_freshreader)/ioncube/ioncube_loader_lin_5.2.so

(※ioncube_loader_lin_5.2.soはFreshReaderのバージョンによって違うかも知れないので適宜読み替えて下さい)


$ /usr/bin/php -v
PHP 5.*.* (cli) (built: Nov 23 2007 12:18:59)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with the ionCube PHP Loader v3.1.29, Copyright (c) 2002-2007, by ionCube Ltd.

お、PHPを復号できるようになってますね。


2007Dec03
何て事をしてるうちに日付が変わって、ターミナルからclawler.phpを叩くと正常にクロールしてくれた。
ついでに解決策をもうひとつ思い付いた。
PHP5で動作してるサーバのコンソールでwhich php4してみてPHP4も同居しているのが確認できたなら、そのパスをメモ。
FreshReaderの「ホーム >> システム設定 >> クローラーの設定」で教えて貰えるCronジョブの実行に使うPHPのパスを、上記で見つけたPHP4のものへ変更してやればいい。
↓こんな感じ。
sudo -u (Apacheのユーザ) /usr/bin/php4 -f /(path_to_freshreader)/crawler.php

こっちのほうが簡単ですな。どっちの方法もスマートだと思えないし、気持ち悪いけど動いてるのでOK...
(暇ならPHP5だけで動かしてるFreshReaderのサーバにPHP4を入れたらどうなるか、とか試してみるのも一興か)

レンタルサーバとかで「突然動かなくなったよ!」なんて人が居たら、管理会社のメンテか何かでPHPのバージョンが上がってしまったのかも知れませんのでお試しを。


もうひとつ思い付いた方法で、FreshReaderのインストールパスへ下記のような内容の.htaccessファイルを置いてみるってのは駄目だった。
php_value zend_extension /(path_to_freshreader)/ioncube/ioncube_loader_lin_5.2.so

まぁCronはシェルから実行してる訳だから、そりゃ動かないよね。
おわり。

----
[近況]
今週は何だか調子が悪くて(というかココに何か書く時は大抵調子悪いだの何だの云ってる気がする)、寝ても寝ても体力が回復しませんでした...これが運動不足の30代の肉体というものか...

週末は自炊で鶏肉ばかり食べてた気がします。
あとバンドメンバーが既存曲の音源を録音する、というのでドラムオケを貰ってベース弾いたりしてました。

そのうちネットで音源公開できるんでしょうかね。

Trackbacks:0

TrackBack URL for this entry
https://w3neu.net/mt/mt-tb.cgi/223
Listed below are links to weblogs that reference
VineLinux/Apache/PHP4.4でFreshReaderクローラを動かしていてPHP5へ移行したら from Sequentially Altered Days

Comments:0

Comment Form

Index of all entries

Home> programming > VineLinux/Apache/PHP4.4でFreshReaderクローラを動かしていてPHP5へ移行したら

Categories
Archives
Syndication

Return to page top