ぼんやりDTP

DTPに関係したりしなかったりするぼんやりとした話をなんとなく。

PukiWiki を 1.4.7 から 1.5.3 にアップデートする

今日日 PukiWiki をあらためて動かすのもどうなんだろうと思わんでもないが、溜め込んだ内容を他に移す手間もあれなので、PHP 7.4.2 でも動かせるように PukiWiki を 1.4.7 から 1.5.3 にアップデートする。

バージョン対応は「FAQ/45 - PukiWiki-official」等参照。

PukiWikiバージョン 対応PHPバージョン
1.4.7 4.1 - 5.3
1.5.0 4.1 - 5.5
1.5.1 4.1 - 5.6, 7.0
1.5.2 4.1 - 5.6, 7.0 - 7.3
1.5.3 4.1 - 5.6, 7.0 - 7.4

基本的には公式ページ「FrontPage - PukiWiki-official」に従って下記のように数回に分けてパッチを当てていった。

  1. 1.4.7 から 1.5.0
  2. 1.5.0 から 1.5.1
  3. 1.5.1 から 1.5.2
  4. 1.5.2 から 1.5.3

1.4.7 から 1.5.0

  • PHP5.4 及び PHP5.5 に対応

作業手順例

  1. PukiWiki/Download/1.5.0 - PukiWiki-official 参照。
  2. PukiWiki/Install/Update/1.5.0 - PukiWiki-official の手順に沿って作業。
  3. update_pukiwiki_147to150_utf8.patchはテキストファイルの状態でアップロードされていたのでただクリックしただけだとダウンロードされずに中身が表示されてしまい、ちょっと手間取った。クリックした瞬間に表示されたダウンロードリンクからすかさずダウンロードした。
  4. カレントディレクトリをwikiのルートディレクトリにしてパッチファイルを親ディレクトリに置いてある状態で下記コマンドを実行。
    $ patch -p1 < ../update_pukiwiki_147to150_utf8.patch
  5. パッチに失敗してFAILEDが出たファイルは、失敗した差分が記録されたhoge.rejファイルを参考にして、手作業でパッチを当てる
    1. - hoge が削除 + hoge が挿入
  6. 当然ながら自分でカスタマイズしているところとか、追加したプラグイン関連の部分が失敗したりするので適切な処理になるように勘案する

1.5.0 から 1.5.1

  • PHP7.0 に対応

作業手順例

  1. PukiWiki/Download/1.5.1 - PukiWiki-official 参照。
  2. PukiWiki/Install/Update/1.5.1 - PukiWiki-official の手順に沿って作業。
  3. update_pukiwiki_150to151_utf8.patchはzipファイルでアップロードされていたので、ただクリックしただけでダウンロードされた。ダウンロードしたzipファイルを解凍してupdate_pukiwiki_150to151_utf8.patchを取り出す。
  4. 以下、「1.4.7 から 1.5.0」と同様。

1.5.1 から 1.5.2

作業手順例

  1. PukiWiki/Download/1.5.2 - PukiWiki-official 参照。
  2. PukiWiki/Install/Update/1.5.2 - PukiWiki-official の手順に沿って作業。
  3. 以下、「1.4.7 から 1.5.0」と同様。
  4. pukiwiki.css.phpcss にカスタマイズを行っていた場合、下記差分表示ツール等を利用し skin/pukiwiki.css にあらためてCSSのカスタマイズを適用する。
    1. Tool/CSSDiff - PukiWiki-official を参考に
    2. PukiWiki CSS diff tool version 3 でカスタマイズ前と後のpukiwiki.css.php または pukiwiki.css のdiffを取り必要なCSSのカスタマイズを行う。

1.5.2 から 1.5.3

作業手順例

  1. PukiWiki/Download/1.5.3 - PukiWiki-official 参照。
  2. PukiWiki/Install/Update/1.5.3 - PukiWiki-official の手順に沿って作業。
  3. 以下、「1.5.1 から 1.5.2」と同様。

その他トラブル回避

  1. 動作検証はMAMPを使用したがエラーログはMAMPディレクトリ直下のlogsディレクトリ下のphp_error.logを参照する。ダブルクリックすれば「コンソール」で開ける。下記ページを参照。
    1. PHP - MAMPでPHPを動かしたいが動かない|teratail
    2. MAMPでエラーログを確認する - Qiita
  2. 使用していた「secedit.inc.phpプラグインでエラーが起こったのでエラーログを見て PHP Parse error: syntax error, unexpected 'new' (T_NEW) でググったら「php7では新しいオブジェクトを参照渡しで代入ができない」らしく&newnewに置換したら動いた。下記ページを参照。
    1. Wiki_memo/secedit.inc.php - モノオキ
    2. Parse error: syntax error, unexpected ‘new' (T_NEW) in | ホームページ制作部ブログ「横着は敵」 | 中央区日本橋 しろくまシステムズ