pukiwikiを移動してみた
日記とか仕事の備忘録とかを記録している、wikipediaみたいなシステムを移動してみましたが、これが意外と手の掛かるものでございました。
とは言うものの、本来の移動は簡単です。
pukiwikiはPHPで書かれたシステムで、DBも使っていません。そして、書き込んだ内容自体は、wikiディレクトリの下にあります。
ですので、移動する場合は、新規にシステムをコピーして、wikiのデータを上書きするだけで完了になります。
pluginとかデザインとかを変更している場合は、変更したものを上書きすれば移動終了です。
私は、凝ったことは何もしていないので、基本的にはこれで終了なのです。
以下は蛇足でございます
今ならば、文字コードは間違いなくUTF-8にするのですが、なぜか以前立ち上げた時は、EUCにしていました。
どうして、そんなことをしたのかは判りませんが、これがいらん作業をするはめになった原因ですな。
まずは、ファイル自体をEUCからUTF-8に変換するのですが、iconvというコマンドを利用すれば簡単に変換できます。
ただし、機種依存文字があると止まってしまうので、-Cオプションを付けないといけませんな。
pukiwikiのデータは、ページの題名をurlエンコードしてファイル名にしています。(%記号は抜いた形になります)
PHPのrawurlencodeでは、英数字といくつかの記号をエンコードしないのですが、pukiwikiでは、文字コードに変換しています。
ということで、こんな手順でファイル名を変換してコピーしました。
1.データファイル名の一覧取得
2.2文字ごとに%記号を代入(マクロを使用)
3.rawurldecodeでファイル名を復元
4.英数字を文字コードに変換(これもマクロを使用)
5.rawurlencodeでファイル名を変換
6.%記号を消去
7.最初のファイル名との対応を取得
8.mvコマンドでファイル名を変更
まぁ最初からEUCからEUCにしておけば、こんな作業もいらないのですが、今後を考えればUTF-8だろうってことで変換したってことですな。
さらに蛇足
仕事の備忘録を書いているのですが、前月のメモを基にして、今月のメモを書いていく形にしております。
pukiwikiには、編集画面で雛形とするページを選べる、というとても便利な機能があります。
以前は、全ページから選択することができたのですが、ver1.5.2から全ページが100ページ以上あると表示しないように変更されました。
表示スピードを落とさないためのようですが、私にとっては困った仕様変更です。
いろいろ調べた結果、lib/html.phpの$page_maxという変数によって、最大ページ数が決められているようなので、1000に変更してみました。
この先を考えたら80年分もあれば十分過ぎるでしょ、ということです。