2016年2月16日火曜日

PukiWiki 1.5.0 へアップグレード

FreeBSD 9.3 で動作している自宅サーバの PHP5 をバージョン 5.4 から 5.6 へアップグレードしたところ PukiWiki が正常動作しなくなってしまいました。

具体的には、日本語の部分がすっかり抜けた状態でページが表示される状況です。

現在の PukiWiki は 1.4.7_notb.utf8 を使用しており、以前紹介した PHP5.4 で対応するようにコードを修正したものを使用していました。
pukiwiki の php5.4 対応へ
http://near-unix.blogspot.jp/2012/08/pukiwiki-php54.html

PukiWiki 1.5.0 へアップグレード

PHP5.6 へのアップグレードで PukiWiki 1.4.7 はすでに動作しなくなっています。PukiWiki 1.5.0 は PHP5.5 での動作を保証していますが、PHP5.6 についての保証はありません。しかし現状を打開するには、とりあえず PukiWiki 1.5.0 へアップグレードして、その様子を確認した後、その後の対策を考えたいと思いました。

PukiWiki のバックアップ

アップグレードの作業を失敗した場合に備えて PukiWiki のバックアップを行いました。ウェブサーバの PukiWiki のディレクトリが存在する場所で次のコピーコマンドを実行しました。これで pukiwiki のディレクトリの内容が所有者や時刻などを含めて同じものが pukiwiki.bak として保存できます。
$ cp -Rp pukiwiki pukiwiki.bak

アップグレードの手法

アップグレードの手法としては、新しく PukiWiki 1.5.0 をインストールした後、作成したページのデータを移行させる方法と PukiWiki 1.4.7 から 1.5.0 へアップグレードさせるパッチを適用させる二種類があります。この記事では、過去の設定を引き継いでくれるアップグレードのパッチを適用させる手法を選んでみました。このパッチで動作しない場合に新規インストールにページデータを移行させる手法を選択することとしました。

パッチによるアップグレード

PukiWiki の公式ウェブサイトからアップグレード用のパッチ(update_pukiwiki_147to150_utf8.patch)をダウンロードしました。
PukiWiki/Install/Update/1.5.0
https://pukiwiki.osdn.jp/?PukiWiki/Install/Update/1.5.0

後は、PukiWiki 公式ページに解説される手順でアップグレードの方法を行ってみました。なお PukiWiki の公式ページでは Windows マシンで Git Bash を使うことで説明が行われていましたが、私は Debian Jessie 上で、通常の端末(bash)でアップグレードの操作を行いました。

PukiWiki のアップグレードをするディレクトリ(upgrade)を作成した作成しました。
$ mkdir upgrade

<ディレクトリ内の構造とファイル>
pukiwiki
pukiwiki/update_pukiwiki_147to150_utf8.patch
pukiwiki/upgrade

現在サーバ上で稼働している PukiWiki から以下のファイルを FTP によりダウンロードしてきました。
ルートにあるファイルすべて (index.php, INSTALL.txt など)
skin/ ディレクトリ
lib/ ディレクトリ
plugin/ ディレクトリ

<ディレクトリ内の構造とファイル>
pukiwiki
pukiwiki/update_pukiwiki_147to150_utf8.patch
pukiwiki/upgrade
pukiwiki/upgrade/lib
pukiwiki/upgrade/plugin
pukiwiki/upgrade/skin

upgrade のディレクトリへ移動して、パッチを適用しました。
$ cd upgrade
$ patch -p1 < ../update_pukiwiki_147to150_utf8.patch

実はここで、パッチエラーが発生してしまいました。それは、以前行っていた PHP5.4 に対応した改変部分がエラーの原因となっていました。

改変部分は、PukiWiki のパスワードなどを設定する部分では無かったことから、再度ウェブサーバから PukiWiki のアップグレード部分をダウンロードし直して、さらに PukiWiki 1.4.7 の改変前のコードを上書きして、パッチを適用させました。これで問題なくパッチが適用できました。

改変したファイルは次の五つでしたので、これらのファイルを PukiWiki 1.4.7 のオリジナルのものを上書きしました。
lib/func.php
plugin/ls2.inc.php
lib/convert_html.php
lib/link.php
lib/init.php
出来上がったアップグレード・ファイルを再度 FTP によりウェブサーバの PukiWiki のあった場所へ上書きしました。

動作確認

すでにウェブサーバの Apache には新しい PHP5.6 がモジュールとしてロード済みです
単純に PukiWiki 内のファイルの置き換え(アップグレード)で動作確認ができます。
私の場合には、抜けてしまっていた日本語の表示が再び表示されるようになりました。簡単に動作確認したところ、問題なさそうでした。メモ代わりにほぼ毎日使う PukiWiki ですので、今後問題が発生したときには、報告をしたいと思っています。

0 件のコメント:

コメントを投稿