chakokuのブログ(rev4)

日々のごった煮ブログです

Google App Engine上でWikiを走らせる→GAEWiki→gieWiki

これまで(仕事以外で)まともにWikiをセットアップしたり記事書いたりしたことなかったけど、自分用のWikiを作りたくなった。いろんな場面で参照したいので、ローカルPCではなくてサーバに設置したい。
以前、SakuraのレンサバでMoinMoinを動かしてみたことがあったけど、久しぶりに使ってみると、Pyhtonのバージョンがあがったせいでdicがなんとかというエラーが出て動かなくなっていた。MediaWikiを入れてみようかとも思ったけど、普段Sakuraを使っていなくてDBどうやってセットアップするんだっけ?とか、かなり忘れている。
最近はGAEを使うことが多いので、GAEで走るWikiがないものかと探していたら、GAEWikiなるものがあるようで、まぁ手順通りに入れたら動くと思われる。そんなわけで、GAE上でWikiを走らせてみた。

ちなみに、、Wikiで管理したいのは、Pyhtonの備忘録(サンプルコード集)です。久しぶりにPythonでプログラム書こうと思うと、細かい表記を忘れてあれこれ思い出す必要があるので

ローカルPC上ではエラーが出るので気にはなりますが、適当にデプロイしたら動いたので、ご参考に作業手順をメモしておきます。

(1)GAEのアプリ定義をする

https://appengine.google.com/start/createapp

アプリ名はgyakupy (逆引きPython)

(2)hgコマンド で リポジトリからファイル一式をダウンロードしてローカルPCにコピーを作る


hg clone https://code.google.com/p/gaewiki/
(2a) 自分はWindowsでhgコマンドがないので、Cygwin Setupでmercurialを落とす

(3)落としたファイルに含まれるapp.yaml


applicatin: gaewiki-demo
 の定義を、(1)で作ったアプリ名に変更(以下は一例です)

applicatin: gyakupy
(4)ローカルのGoogleAppEngine開発環境に落としたGAEWikiのパスと登録
(5)ローカル環境のGAEWikiにアクセスして動作テスト

http://localhost:12080


ERROR 2013-06-08 06:02:28,421 wsgi.py:235]
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 223, in Handle
result = handler(dict(self._environ), self._StartResponse)
TypeError: 'module' object is not callable
INFO 2013-06-08 15:02:28,430 server.py:561] default: "GET / HTTP/1.1" 500 -
またdictでエラーが出ている。。なんかこの辺りでいつもひっかかりますね。

(6)エラー解消させるのは面倒だったので無視してアップロード(Deploy)してみた。一応動いてる。

左はGAEWikiのスクリーンショットです。
 http://gyakupy.appspot.com/


というわけで、、GAEWikiを入れてみましたが、アクセス権限とかなさそうだし、Exportしたら、漢字がUnicodeのHEX Dumpになるようだというのと、Pythonのバージョンアップに対応していなさそうだということで、他のWikiをさらに入れてみることにしました。

GAEWikiは機能がシンプルすぎると思ったので、もう少し高機能なgieWikiを入れてみた。やり方はほとんど同じで、ファイル一式をダウンロードしてアプリ名を変更して、GAEにアップロードするという手順でインストールできる。

(1)ファイル一式をローカルPCにダウンロード

https://code.google.com/p/giewiki/downloads/list
file:giewiki-1.18.3.zip

(2)zipファイルを展開して、app.yamlのapplication名指定を自分のアプリ名に変更
(3)ローカルPCのGAE開発環境で動作確認
(4)DeployコマンドでGoogleAppEngineのサーバに転送
gieWikiはエラーなく動きました。ちゃんとメンテされているからPythonのバージョンも上げられている。
(5)動作確認
左はgieWikiのスクリーンショット。さすがにこっちは機能がおおいのでそもそも本文をどうやって書いたらいいのかすらわからない。。 gieWikiはTiddlyWikiがベースのようです。また、ページ編集権限等も設定できる。gieWikiの方が安心ではありますね。

 http://gyakupy.appspot.com/

TiddyWikiって自分にとっては慣れないWikiシステムで最初はかなり混乱しました。自分の理解の範囲で言いますと、TiddlyWikiは記事の単位をtiddlerと呼び、tiddlerはWikiのPageとは一対一ではなく、Pageの中に複数のtiddlerを入れることができるようです(本当か?)。Pageやtiddlerは簡単に相互リンクとともに書き足すことができ、捗るWikiという気がします。さらにtagが上手に使えたら、tiddlerを章単位に束ねたりもできるのではと思われます。

■ご参考URL

GAE上で動作するWikiないですか?というQA(他人のQA)
http://stackoverflow.com/questions/2434185/whats-a-good-wiki-that-works-on-google-app-engine
GAEWikiのサイト
https://code.google.com/p/gaewiki/wiki/Introduction?tm=6
gieWikiのサイト(こちらは最新版のメンテナンスもされているようで、、)
https://code.google.com/p/giewiki/
tiddywikiを説明しているDonaDona様のサイト
http://hsj.jp/junknews/archives/tiddlywiki_susume.html