WindwosXP が動いていた古いほうのPCが壊れた。といっても、ほぼネット専用機になっていたのでたいした実害は無いんだけど、ただ、いくつかWebアプリを動かしていたので、それをどうにかしないといけなくなった。
そのWebアプリのひとつが、WikiクローンのHikiで、幸いハードディスクは無事だったので、データを回収して新しいほうのPC(といってもWindows7)に引っ越すことにした。
VertrigoServ のインストール
何はともあれ、Webサーバが無くては何もできない。古いPCでは、VertrigoServ という、Apache と MySQL と PHP がセットになっているものを使っていた。なので、今回もこれを使うことにする。まずは以下のサイトから VertrigoServ をダウンロード。バージョンは2.29。
cf. http://vertrigo.sourceforge.net/
ファイルは実行形式のインストーラになっているので、案内に従うだけで簡単にインストールできた。ひとつ注意点としては、インストール先をデフォルトの C:\Program Files (x86)\VertrigoServ ではなく、C:\VertrigoServ に変えたところ。こうしておかないとconfファイルの編集ができない。たぶんWindows7の権限の問題なんだと思うけどそれを追及するより楽な道を選んだ。
で、変えたところは次の2点。
1点めは、httpd.conf内のWebサーバのポート。デフォルトでは 8080 になっているのを 80 に変えた。
#Listen 8080 Listen 80
コメントアウトしてあるのがデフォルトの設定ね。
もう1点は、DocumentRoot。これはvertrigo.conf内に記述がある(vertrigo.confはhttpd.confにインクルードされている)。
#DocumentRoot "C:\VertrigoServ\www" DocumentRoot "C:\www"
#<Directory "C:\VertrigoServ\www"> <Directory "C:\www"> Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from All </Directory>
最後に、C:\VertrigoServ\www を C:\www にコピーして終わり。ブラウザで http://localhost/ にアクセスすると無事、Welcome to VertrigoServ というページが表示された。
Hiki のインストール
Hikiは次のサイトからダウンロードした。
バージョンは1.0.0。これも基本的にはダウンロードしたファイルを展開して、DocumentRoot以下(C:\www\hiki
に配置、いくつかの設定をするだけでいい……はずなんだけど、いざブラウザでアクセスしてみたら、docdiff/difference がロードできないと言うエラーが出た。配布物内の Gemfile を見ると、どうも docdiff という GEM が必要なようなので、インストールする。
^o^ > gem install docdiff
さて、今度は大丈夫かと思ったら、hikidoc がロードできない、というエラーが出たので、これまたインストール。
^o^ > gem install hikidoc
今度こそ大丈夫、無事 FromtPage が表示された。
Hiki のデータを引越し
最初、これはデータを上書きすればいいだけだと思っていた。が、そうはいかなかった。データは、WebサーバのDocumentRootのそと、C:\hiki_data に置いたんだけど、この中のtextディレクトリの中見たデータそのものなので、基本的にはここに以前のデータを放り込んでしまえばいいはずなんだけど、ブラウザからアクセスしたら、エラーになってしまった。なにやらエンコードの問題らしい。
考えてみれば、古いHikiのバージョンは、0.6.3 でエンコードはEUC、対して新しいほうのHiki(1.0.0)のエンコードはUTF-8らしい。ということはEUCからUTF-8にコンバートできればいいはず、と思って配布部図の中を眺めてみると、tool/convert.rb というスクリプトを発見。中を見るとなんかあたりっぽい。これを使ってコンバートした。
^o^ > ruby -Ic:\www\hiki c:\www\hiki\tool\convert.rb --data-directory=BSL -i euc -jp -o utf-8
なんか warning がいっぱい出たけどとりあえず無視して、変更されたデータを丸ごとhiki_data/textにコピー。
改めてブラウザでアクセスすると、今度はうまく表示された。