PukiWikiのアップデート(1.5.3→1.5.4)

PukiWiki のバージョンを1.5.3から1.5.4にアップデートします。
※2024/11/23時点の最新は1.5.4でした。

PukiWiki 公式サイトに掲載されている手順に従って行います。
稼働中の環境からPukiWiki のファイルをローカル環境にダウンロードし、ローカル環境でpatch コマンドでアップデートして更新されたファイルをサーバーにアップロードする手順となります。
※ローカル環境はmacOS で行いました

手順

1. アップデート前のバックアップ

稼働中のPukiWiki のアーカイブを作成します。
PukiWiki を格納しているディレクトリはwiki にしているので、以下のコマンドを実行します。

tar -zcvf wiki_20241122.gz ./wiki

gzファイルをダウンロードしたら削除します。
※FileZilla を使ってダウンロードしました

rm wiki_20241122.gz

2. アップデートパッチをダウンロード

アップデートパッチはエンコードがUTF-8EUC-JP の2種類が用意されています。

稼働中のPukiWiki のエンコードが UTF-8 、EUC_JP のどちらかを確認します。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

ページのソースを見ると”charset=UTF-8” となっていたので、UTF-8 のアップデートパッチをダウンロードします。

ダウンロードしたファイル
update_pukiwiki_153to154_utf8.patch.zip

稼働中のPukiWikiのバージョンが1.5.3 であることを確認します。
ページの一番下にPukiWiki 1.5.3 と表示されています。

3. アップデートするファイル・ディレクトリをダウンロード

稼働中のPukiWikiのディレクトリから以下のファイル・ディレクトリをダウンロードします。

  • ルートの全ファイル
  • skin/ ディレクトリ
  • lib/ ディレクトリ
  • plugin/ ディレクトリ
  • wiki/ ディレクトリ

※ アップデートパッチをダウンロードしたディレクトリにpukiwiki というディレクトリを作ってその中にダウンロードします

4. ローカル環境でアップデートを実行

アップデートパッチの中身を以下のコマンドで展開します。

unzip update_pukiwiki_153to154_utf8.patch.zip

pukiwiki ディレクトリに移動して、patch コマンドでアップデートを実行します。
※実行結果も一緒に貼り付けておきます。

% cd pukiwiki
% patch -p1 < ../update_pukiwiki_153to154_utf8.patch
patching file INSTALL.txt
patching file README.txt
patching file UPDATING.txt
patching file default.ini.php
patching file en.lng.php
patching file ja.lng.php
patching file keitai.ini.php
patching file 'lib/auth.php'
patching file 'lib/config.php'
patching file 'lib/convert_html.php'
patching file 'lib/file.php'
patching file 'lib/func.php'
patching file 'lib/html.php'
patching file 'lib/init.php'
patching file 'lib/link.php'
patching file 'lib/make_link.php'
patching file 'lib/plugin.php'
patching file 'lib/proxy.php'
patching file 'lib/pukiwiki.php'
patching file 'plugin/attach.inc.php'
patching file 'plugin/backup.inc.php'
patching file 'plugin/calendar_viewer.inc.php'
patching file 'plugin/color.inc.php'
patching file 'plugin/counter.inc.php'
patching file 'plugin/dump.inc.php'
patching file 'plugin/edit.inc.php'
patching file 'plugin/img.inc.php'
patching file 'plugin/loginform.inc.php'
patching file 'plugin/navi.inc.php'
patching file 'plugin/pageaction.inc.php'
patching file 'plugin/ref.inc.php'
patching file 'plugin/rss.inc.php'
patching file 'plugin/search2.inc.php'
patching file 'plugin/touchgraph.inc.php'
patching file 'plugin/tracker.inc.php'
patching file pukiwiki.ini.php
patching file 'skin/keitai.skin.php'
patching file 'skin/main.js'
patching file 'skin/pukiwiki.css'
patching file 'skin/pukiwiki.skin.php'
patching file 'skin/tdiary.css'
patching file 'wiki/466F726D617474696E6752756C6573.txt'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F412D44.txt'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F452D47.txt'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F482D4B.txt'
1 out of 4 hunks failed--saving rejects to 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F482D4B.txt.rej'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F4C2D4E.txt'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F4F2D52.txt'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F532D55.txt'
patching file 'wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F562D5A.txt'

1つ失敗しました。(48行目)

% echo "50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F482D4B" | xxd -r -p
PukiWiki/1.4/Manual/Plugin/H-K

失敗したファイルは”wiki/PukiWiki/1.4/Manual/Plugin/H-K” でした。
とりあえず、このまま作業を進めます。

5. 稼働環境のファイルを更新

アップデートしたファイルを稼働中の環境にアップロードして上書きします。
PukiWiki 公式サイトに以下のように書かれていたので、wiki/ ディレクトリはタイムスタンプがアップデートパッチを実行した時刻に変わっているファイルのみアップロードしました。(.rej を除く)

6. 動作確認

アップデートしたPukiWiki のページが正常に表示されるか確認します。
PHP 8.1 の環境で正常に動作しました。
ページの一番下にPukiWiki 1.5.4 と表示されています。

アップデート失敗した”/?PukiWiki/1.4/Manual/Plugin/H-K” のページも表示はできました。

その後、PHP のバージョンをPHP 8.3 に上げても正常に動作しました。
大丈夫そうなので、以上で完了となります。

参照