chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

さくらレンタルサーバにPython版Wiki;moinmoinを入れてみる

さくらのレンサバでもまとめ記事を書いていたけどどうも気に入ったCMSがなくて放置状態であった。ブログで書くとどうしても散文的になってしまい、まとまった長文を仕上げるのが難しい。というわけで、再度作り直すことにした。
これまではPHPで書かれたWordPressをカスタマイズして使っていたけど、どうもブログ的な文化が残ってしまう印象があったり、プラグインがいまいち使いこなせなくて結局放置した。
最近GAEを使い出してから、Python*1に惚れこんでしまったので、PythonでかかれたWikiクローンのmoinmoinを入れてみた。以下はインストール手順のメモ。

(1)最新版ソースをmoinmoinからDL
(2)ソースをさくらレンサバにFTP等で転送
(3)tar -xvfz moinmoin_version.tar.gz で展開
(一時的に~/tmp配下に展開したとする)

以下は~/local配下にmoinmoin関連のマスターファイルを展開する例


% mkdir ~/local
% cd ~/tmp/moinmoin- は用いたmoinmoinのバージョン
% python setup.py install --prefix=~/loocal --record=install.log

以下にmoinmoin関連のファイル(マスターのファイル類)が展開される

~/local/lib
~/local/share
~/local/bin

(4)Wiki実体を作る ~/myWiki配下にwikiの実体(個別ファイル)を置く例


% mkdir ~/myWiki
% cd myWiki/
% cp -R ~/local/share/moin/data .
% cp -R ~/local/share/moin/underlay .
% cp ~/local/share/moin/config/wikiconfig.py .
% cp ~/local/share/moin/server/moin.cgi ~/www

試しに走らせてみる

~/www/moin.cgi (ちょっと走ってエラーになる)

(5)このままではconfigやmoinmoinのライブラリにアクセスできないので関連ファイルにパスを追加する(ユーザ名がfoobarの場合の例)

file:moin.cgi に対して以下のパスを追加


sys.path.insert(0, '/home/foobar/myWiki')
sys.path.insert(0, '/home/foobar/local/lib/python2.4/site-packages')
絶対パスでなくて、moin.cgiからの相対パスでも設定できますが、、インストールの状況によって変わるので、わかりやすく絶対パス指定の例を記載

file:wikiconfig.py に対してdata_dirとunderlay_dirを指定

data_dir = '/home/foobar/myWiki/data/'
data_underlay_dir = '/home/foobar/myWiki/underlay/'

ここまで設定すると、htmlファイルは吐いてくれるはず

% ~/www/moin.cgi を実行してエラーが出ない事を確認

http://hogehoge.jp/moin.cgi とブラウザで確認(hogehogeは例)

(6)img/cssなどのデザイン関連データへのパスが切れていないのでこれらを設定
  スタティックデータのディレクトリを仮に、moin_statとした場合の例


% cd ~/www
% ln -s ~/local/share/moin/htdocs/ ./moin_stat

(上記の様にリンクしなくても、~/wwwの下にディレクトリ作ってそこにコピーしてもいいと思います。リンクを辿って上位ディレクトリにアクセスされる危険はないとは思いますが、www配下に実体を置くほうが安心。)

(6-2)wikiconfig.pyでスタティックファイルのパスを指定する

file:wikiconfig.py に対して以下を設定


url_prefix_static = '/moin_stat'
logo_string = u'<img src="/moin_stat/common/moinmoin.png" alt="MoinMoin Logo">'

(7)これで一旦終了

http://hogehoge.jp/moin.cgi でmoinmoinの画面がデザイン付きで見えるはず。。

続いて誰にwikiの内容の編集を許可するか等、権限設定などが必要です。
(このままでは、誰でも編集できる状態です)

moinmoinをさくら上にインストールした例

<補足>とりあえず動くことを優先に設定しています。ファイルのアクセス権限等は何も変更せずデフォルトで動かしています。各自でreadmeを見てセキュリティ対策は適宜実施してください。(自分でも気づいたら追々足しますが)

■ご参考URL

moinmoin公式サイト http://moinmo.in/
ダウンロードURL http://moinmo.in/MoinMoinDownload

Netsphere Laboratories 様のサイト (簡潔にまとめられてます)
MoinMoinのインストールと運用 http://www.nslabs.jp/moinmoin_install.rhtml

■追記(2013/6/8)
久しぶりにsakuraのレンサバでmoinmoinを動かしたら、dictがエラーになった。どうやらPythonのバージョンが上がったためらしい。手パッチを当ててもいいけど、最新版を入れなおしてみたい。WSGIって何なのか。。

*1:インデント=ブロックという斬新すぎる概念に最初のけぞってしまって、キワモノ言語と誤解してしまい、ずっと使っていなかった。。