CentOS6なのでPHPは5.3系でしたが、WordPressを更新するためにPHPを5.6系に更新しました。 その結果、pukiwikiが動かなくなったので、アップデートしました。
現在管理しているアクティブなpukiwikiは2個あり、片方は1.4.7で、もう片方は1.4.5になります。 1.4.7は1.5.0への更新パッチが用意されているので、簡単に移行できます。 1.4.5は差分が大きく、更新パッチは用意されていません。 1.4.7->1.5.0へのパッチを適用して、衝突内容を手動で解決していく方法も提示されていますが、結構厳しいので諦めました。
https://pukiwiki.osdn.jp/?PukiWiki/Install/Update/1.5.0
上記のページからパッチファイルを入手し、移行したいpukiwikiディレクトリ内に入って、下記を実行するだけです。
patch -p1 < ../update_pukiwiki_147to150_eucjp.patch
これは移行というより、新規インストールになります。 よほどカスタムを加えていない限り、新規インストールしてそこへ必要なものを移植する方が労力は少ないと思われます。
https://pukiwiki.osdn.jp/?PukiWiki/Download/1.5.3
まず上記のページからpukiwiki1.5.3をダウンロードします。 サーバにアップロードして、展開します。
unzip pukiwiki-1.5.3_eucjp.zip
それから、移行元のpukiwikiから、下記のフォルダをコピーします。
コピーを行なう際は、タイムスタンプや属性を維持します。ページの時間情報はタイムスタンプに頼っているみたいなので、pオプションなしだと時間情報が失われます。
cp -Rp oldpukiwiki/wiki newpukiwiki/
続いてCSSの適用を行ないます。見た目が特に気にならない場合は、スキップします。 これは、上記のように丸ごとコピーというわけにはいかず、pukiwiki.cssに手動で書き写しました。 一部違いはありますが、大体同じ設定項目なので、きちんと調べればある程度丸ごとコピーができるかもしれません。
自分はWikiNameの自動検出を鬱陶しく感じるので、pukiwiki.ini.phpの下記設定で無効化します。
///////////////////////////////////////////////// // _Disable_ WikiName auto-linking $nowikiname = 1;
スパム対策として、編集処理は認証必須とします。
$auth_type = AUTH_TYPE_BASIC; ///////////////////////////////////////////////// // User definition $auth_users = array( 'username' => 'passwod' ///////////////////////////////////////////////// // Edit auth (0:Disable, 1:Enable) $edit_auth = 1; $edit_auth_pages = array( '##' => 'username'
移行時にファイルコピーする際に利用したユーザがファイルのオーナーになっている場合、適切なパーミッションを設定していないと、Webサーバのユーザによる編集操作ができません。自分は最初のファイルコピーの手順が拙くて少しハマったのですが、ページ削除に更新されるRecentDeletedというwikiページファイルのパーミッションが不適切だと、wikiページの編集ができても削除ができない状態になります。下記で直しました。
chmod 0666 wiki/wiki/526563656E7444656C65746564.txt
History