Pukiwiki1.5系への移行

背景

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へのパッチを適用して、衝突内容を手動で解決していく方法も提示されていますが、結構厳しいので諦めました。

1.4.7->1.5.0の移行

https://pukiwiki.osdn.jp/?PukiWiki/Install/Update/1.5.0

上記のページからパッチファイルを入手し、移行したいpukiwikiディレクトリ内に入って、下記を実行するだけです。

patch -p1 < ../update_pukiwiki_147to150_eucjp.patch

1.4.5->1.5.3の移行

pukiwiki1.5.3の新規インストール

これは移行というより、新規インストールになります。 よほどカスタムを加えていない限り、新規インストールしてそこへ必要なものを移植する方が労力は少ないと思われます。

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の更新

続いてCSSの適用を行ないます。見た目が特に気にならない場合は、スキップします。 これは、上記のように丸ごとコピーというわけにはいかず、pukiwiki.cssに手動で書き写しました。 一部違いはありますが、大体同じ設定項目なので、きちんと調べればある程度丸ごとコピーができるかもしれません。

WikiName自動リンクの無効化

自分は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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-07 (日) 01:41:29