社内のサーバを仮想化したのに伴い、社内wikiとして使っているdekiwikiも環境移行しました。
dekiwikiは優れたツールですが、移行やバージョンアップはいまいち考えられていない感もありますね。
次のような手順で移行しました。
手順
- 新サーバで、aptitudeから普通にdekiwikiをインストール(この際、DBパスワードなどを同じにしておく)
- 旧サーバのmysqlデータを、新サーバにコピー
/var/www/dekiwiki/attachments
以下を、新サーバにコピー
これで一通りは使えるようになります。
インストール後はコントロールパネルからキャッシュの再構築が必要です。
ついでにmonoをバージョンアップしたせいか、動作が劇的に速くなりました。古いmonoはCPUをずっと食い散らかしていたので、何かバグがあったのでしょう。
問題
しかし、新wikiでは以下の問題が発生しました。
- 検索すると画面が真っ白になる
- コントロールパネル「削除済みファイル」を開くと画面が真っ白になる
原因
これは2つの問題が複合していました。
削除済みファイル
まず削除済みファイルの件ですが、attachmentsの中身のコピーが不完全で、エラーになっていたようです。
ファイルのインデックスはmysqlに保存されるため、インデックスが存在してファイル実体が無い場合、エラーになってしまいます。
/var/log/dekiwiki/deki-api.log
に表示されるエラーを参考にしながら、完全なコピーを実施します。万が一ファイルを無くしてしまっていたら、とりあえず同名ダミーファイルでもおいておけば良いかもしれません。
検索ができない
次に検索が出来ない件ですが、PHPのメモリ不足でした。
php.iniでmemory_limit
を16MBから64MBにしたら、無事検索できるようになりました。ページやファイル数が多くなっているため、結構メモリを食うのですね。
PHPエラーを出力する設定にしないと気づかないので注意が必要です。