コンテンツへスキップ

1

以前にPHP 5.4系にアップデートしようと試みましたが、運用中のPukiWiki (1.4.7 UTF-8版)が対応せず断念したことがありました。

該当記事: サーバー保守 ・ 

しかしながら、remiリポジトリも5.4系に移行したこともあり、重い腰を上げていざアップデートへ。
あと、eAcceleratorがエラーで入らなかったのでAPCをインストール。(⇒ 仮メモ: CentOS5でRemiのPHP5.4にupdateするとエラー


さて、PukiWikiの修正に入りましょう。

まずは、hex2bin関数がPHPの組み込み関数と競合する問題(PukiWiki-Dev: BugTrack2/349)の修正。
PHP5.3に戻すこともないのでhex2bin関数をコメントアウトします。

/*
// Inversion of bin2hex()
function hex2bin($hex_string)
{
	// preg_match : Avoid warning : pack(): Type H: illegal hex digit ...
	// (string)   : Always treat as string (not int etc). See BugTrack2/31
	return preg_match('/^[0-9a-f]+$/i', $hex_string) ?
		pack('H*', (string)$hex_string) : $hex_string;
}
*/

加えて、コール時の参照渡し(Call-time pass-by-reference)が廃止されているために動かないプラグインがいくつか。
BugTrackの方にはls2とpcommentが挙がっていますが、前回試みた際に発生したMenuバーが表示されない問題はonlineプラグインにありました。

// array_walk($args, 'plugin_ls2_check_arg', & $params);
array_walk($args, 'plugin_ls2_check_arg', $params);
// array_walk($args, 'plugin_pcomment_check_arg', & $params);
array_walk($args, 'plugin_pcomment_check_arg', $params);
// if (plugin_online_check_online(& $count, $host)) {
if (plugin_online_check_online($count, $host)) {

これでたぶんFatal errorは解決するので、ほぼ問題なく動くと思います。
(EUC-JP版PukiWikiの場合、厄介なhtmlspecialcharsの非互換問題の対応が必要です。)

あとはslashdot:martianの日記: PHP5.4 と PukiWikiを(2)(3)とかを。
参照渡し周りとか箇所が多いのでコードは省略。
また、設定してなければタイムゾーンを設定。

date.timezone = "Asia/Tokyo"

やっぱエラー直したい!という方はこちらnowsky様「PukiWiki/error」のWikiが詳しいです。

こんな感じで一応動いています。触っているうちに何かエラーが発生するかもしれません。
PukiWikiでもCVS版であれば、hex2binの修正だけでどうやら動くようです。
しかしながら、本家PukiWikiはほぼ開発停止のようなものですからね・・・
CVS版を取り込んでいるPukiWiki Plus!で運用してみたサイトもあるのですが、なかなか良い感じです。
更にこれを発展させPHP5.4対応のPukiWiki Advanceというのもあり、かなり改変が加えられていて前衛的な機能が実装されています。
機会があれば試してみようと思います。

やっぱりPHPを5.3.11へダウングレードした。
昨日だか一昨日だかにPHP 5.4.1, 5.3.11がリリースされたみたいなのでついでというか。
バグフィックスが主みたいですけどね。

まぁPukiWikiの件もありますし、しばらくはこれでいきましょう。
ただ、別のWikiないし汎用CMSに乗り換えようかとも考えています。

[追記]
できました ⇒ PHP5.4系にアップデート

こんばんは。またも久々の投稿となりました。
先週末よりウイルス性胃腸炎だか(ノロか?)にかかって、 なんかもう・・・疲れました。

で、今日はサーバーを色々といじったのでメモ。

まずはApacheとPHPのアップデート。
 セキュリティフィックスを含むので脆弱性を突いた攻撃を受けないように最新版にしないとね。
しかし、PHP 5.3.x系から5.4.xにアップデートした関係でPukiwikiの動作に影響が出てしまいました。

PukiWiki-dev:BugTrack2/349「php-5.4.0で動作させる対応」

Pukiwiki開発向けWikiにて色々報告されてますね。
私のところでも500エラーを吐いていましたが、とりあえずlib/func.phpの修正をしたら一応出力されるようになりました。
ただ、一部MenuBarが出力されない。原因調べは時間のある時に。
早いうちに公式対応してくれるのを望むが…時間かかりそうだよな。(ほぼ開発停止なので)

お次はサーバーの移動。
といっても自宅サーバー機の物理的な位置移動のこと(笑)
最近HDDが共振してうなり音が顕著になってきたので、押入れにぶち込んだ。
これでかなり自室は静かになりました。
夏はどうなるか知らないけどね←

あと、部屋を整理してたらDDR-SDRAM 1GBなメモリを発掘したので早速増設。
512MB+512MBから1GB+512MBで、50%増量ですな。
時々スワップが発生していたので多少改善されそうかな。
流石にオンボロモいいとこなので自鯖新調計画を近々。

あとはApache周りのチューニングしたりログ整理した。

今日はここまで。

[追記]
PukiWikiの問題、PHPアップデート成功です ⇒ PHP5.4系にアップデート