moinmoinとは、Pythonで作られたwikiソフトウェア。
moinmoin 1.xはだいぶ古くなってきたので大きな一歩として現在時期メジャーバージョンアップに向けて開発が進められているのが
このmoin2.0
moin2.0はPython2.7で動き(大きな一歩の割にはPython3には出来なかったようだ)
2.1から正式リリースでバグフィックスなどを重ねていくそうだ。
そしてPython3が正式に対応したバージョンからmoin3.xになるという構想らしい。
つまりmoin2.0はベータ版みたいなもので、でも近々安定版になると考えれば
1系からアップグレードをするよりも総合的には安全。
いまmoinを始めるならば2.0がいいだろう。
moinmoin自体日本ではあまりメジャーでない上にさらに2.0となるとほとんど日本語でしらべものができない。
https://moin-20.readthedocs.org/en/latest/
こちらのmoin2.0のドキュメントくらいしか納得の行く参考資料がない。
まあしょうがない…
空のwikiが動くまでちょっとまとめてみた。
必要なものと実行環境
CentOS6で動かす事を前提にしている。
ArchとかだったらPython2.7も入っているが、CentOS6だと2.6止まりなので
実行環境を整える物も必要。
必要なものは以下のとおり
pyenv | Pythonの実行環境を整えるのに必要 |
pip | pyenvからPython入れれば付いてくるから意識しないでも良い |
virtualenv | moin2.0のインストールに必須なパッケージ pipから入れよう |
mercurial | Pythonで作られたgitみたいなソフト。moin2.0のソースはmercurialで公開されている。yumでインストールできる |
上記のパッケージやソフトについては各自ググル先生に聞いて入れておいて、
ここではmoin2.0のインストールのみ書いておく。
インストール
必須ソフトにvirtualenvが入っていることから分かるかもしれないが、
moin2.0はmoinが実行の土台となるpythonの環境を内部に持つようになっているようだ。
これはかなり便利で、サーバーの他のpythonとも競合が起きないし、
マイグレーションを行う際も影響範囲が狭くなるので便利。
複数のmoin2.0を同じサーバーで動かすことも簡単に出来そうだ。
さて、まずはmercurialでmoin2.0のソースをリポジトリから落としてくる。
インストールについてはこちらの記事に詳しく書いてある。
http://moin-20.readthedocs.org/en/latest/admin/install.html
まずはリソースをダウンロードしてくる
$ hg clone http://hg.moinmo.in/moin/2.0 moin-2.0
次にPythonの実行環境の確認。
この際にはpyenvでpythonのバージョンを2.7にして置かなければならない。
$ pyenv local 2.7.8
環境が整ったら次はインストール作業
$ cd moin-2.0 $ python quickinstall.py #この際にvirtualenvが無かったらコケる
終わると、moin-2.0ディレクトリと同列の場所にmoin-2.0-venv-pythonディレクトリが作成される。
この中に実行ファイルなどが入っている。
空のWIKI作成
moinmoinをインストールしただけでは終わらない。
こんどはwikiを構築しなければならない。
~/moin-2.0/m
こちらのmという名前の実行ファイルが管理を行うコマンドになる。
何もオプションをつけなければヘルプが表示される
new-wikiというコマンドで空のwikiを作ることができるようだ。
$ ~/moin-2.0/m new-wiki
簡易実行
wikiが出来上がったら実行をする。
$ ~/moin-2.0/m run
上のコマンドでも簡易実行はできるようだが、
ローカルホストのみの接続しか許されていないようだ。
Vagrantや別サーバーで構築を試していると、接続できない。
それについては別の方法で実行をすることでローカル以外から接続できるようになっている。
$ ~/moin-2.0-venv-python/bin/moin moin --config ~/moin-2.0/wikiconfig.py --host 192.168.0.10 --port 8080
–hostのところには、moinが入っているマシンのIP
–portは任意のポート
これを実行すればサーバーが動き出す。
終了するにはCtrl+CでOK
Vagrantで手軽に試そうと思ったが、iptablesで最初からメジャーじゃないポートは閉じられていたため意外と迷った。
繋がらないなと思ったらもしかしたらiptablesに最初から設定されているルールがあるかも知れない。
ともかくこんな画面がブラウザに表示されたらインストール完了
今後について
簡易実行まで済んだので公開できるところまで設定をしなければならない。
wikiconfig.pyで設定できるところがあるのだが、
特に目を引くのはsecretKeyの設定だ。
moinmoinはFlaskというフレームワークで作られているのだが、クッキーの暗号化などsecretkeyを使ってハッシュしている。
だからこういう安全面は必ず設定をしなくちゃならない。
今日は画面を表示するところまでだったが実際に投稿をするアカウントを作ったり
権限の設定などが待っている。
今回は簡易サーバーを使ったが、Apache上で動かさなければ公開は出来ないので
そこの設定も残っている。
バックアップとリストアの方法も考えなければならない。
Pythonの実行環境を上げる方法も考えなければならない。
一つ一つ潰していって、最終的に公開サーバー上に構築していこうと思う。