(ヽ'ω`) < Moinmoinを複数個設置する(サブディレクトリ編)
(ヽ'ω`) < 1つじゃ足りない
Moinmoinを単体で設置する方法を解説したが、時には複数個必要になる時もあるかもしれない。
参考:(ヽ'ω`) < MoinmoinをCentOS6にインストール - (ヽ´ω`) < *****
また、上記の解説ではホストのドキュメントルートに設置する場合の説明だったが、既にコンテンツを配置してあるホストの場合、サブディレクトリ運用を行いたいという要望は当然出てくると思う。
複数個のMoinmoin Wikiを設置するときの形態としては、
の2通りが考えられるので、それぞれについて解説を行う。
(ヽ'ω`) < 今回のシナリオ
今回は例として、Python, Ruby, JavaScriptそれぞれに関するMoinmoin Wikiを設置するシナリオを考えていく。
(ヽ'ω`) < まずはサブディレクトリ運用
サブディレクトリ運用は、Moinmoin側の設定がメインになる。
/usr/share/moinをテンプレートとしてコピー
Moinmoinをインストールした際に、
- /usr/bin/moin
- /usr/lib/python-/site-packages/***
- /usr/share/moin/***
と3つのファイル・ディレクトリがインストールされるが、この中でWikiの設定やデータを保持するのは、3のディレクトリとなる。(逆に言うと1と2は全てのMoinmoin Wikiで共有されるので、今回の手順では考慮しなくていい)
単体のMoinmoin Wikiを設置した際には、3のディレクトリの中身をそのまま使用したが、今回はこのディレクトリをテンプレートにそれぞれのMoinmoin Wikiを作成していく。
Moinmoin Wikiを設置するファイルシステム上の場所だが、これはどこでもOK。とりあえず今回は/opt
の下にmoinmoin
というディレクトリを作成して、その中で作業を行なっていく。
/usr/share/moin
ディレクトリをそれぞれ名前を変更して/opt/moinmoin
にコピーする。
## /opt/moinmoinを作成 [root@060071aa66f7 /]# mkdir /opt/moinmoin ## テンプレートディレクトリからそれぞれのMoinmoin Wikiディレクトリをコピー [root@060071aa66f7 /]# cp -fr /usr/share/moin /opt/moinmoin/python [root@060071aa66f7 /]# cp -fr /usr/share/moin /opt/moinmoin/ruby [root@060071aa66f7 /]# cp -fr /usr/share/moin /opt/moinmoin/javascript ## コピーが正常に行われたかを確認 [root@060071aa66f7 /]# cd /opt/moinmoin/ [root@060071aa66f7 moinmoin]# ls -l total 12 drwxr-xr-x 6 root root 4096 Oct 14 03:25 javascript drwxr-xr-x 6 root root 4096 Oct 14 03:25 python drwxr-xr-x 6 root root 4096 Oct 14 03:25 ruby [root@060071aa66f7 moinmoin]#
moin.wsgi
とwikiconfig.py
をコピー
単体設置の時と同じく、server/moin.wsgi
とconfig/wikiconfig.py
を親ディレクトリにコピーする。
[root@060071aa66f7 /]# cp /opt/moinmoin/python/server/moin.wsgi /opt/moinmoin/python [root@060071aa66f7 /]# cp /opt/moinmoin/python/config/wikiconfig.py /opt/moinmoin/python ...同じようにruby, javascriptディレクトリのものもコピーする
Apache側のmoin.confを編集
Apache側のWSGIとの連結部分の設定を記述するが、ここで単体の場合とWSGIScriptAlias
の記述が変わってくる。
単体の場合は
WSGIScriptAlias / /usr/share/moin/moin.wsgi
だったが、複数かつサブディレクトリ運用の場合は
WSGIScriptAlias /python /opt/moinmoin/python/moin.wsgi WSGIScriptAlias /ruby /opt/moinmoin/ruby/moin.wsgi WSGIScriptAlias /javascript /opt/moinmoin/javascript/moin.wsgi
のように、
WSGIScriptAlias <サブディレクトリ名> <対応するWikiのmoin.wsgi>
のフォーマットでエントリを複数追加していく。
一見難解だが、よくよく見てみるとApacheのAlias
ディレクティブと大きくは変わらない。
ホストのURLと、そこにアクセスした際に読み込まれるスクリプトに関して記述したwsgiファイルを対応付けているだけ。
moin.wsgiファイルの記述
これは単体設置の時と同じ
wikiconfig.pyファイルの記述(url_prefix_staticの修正)
これも単体設置の時と同じく、sitename
やpage_front_page
, superuser
などの設定を行うが、更にここで1つ設定を追加の必要がある。
url_prefix_static
という変数の値を設定する必要がある。形式としては
url_prefix_static = <"/" + サブディレクトリ名> + url_prefix_static
今回のシナリオで言うと
## in /opt/moinmoin/python/wikiconfig.py url_prefix_static = "/python" + url_prefix_static
## in /opt/moinmoin/ruby/wikiconfig.py url_prefix_static = "/ruby" + url_prefix_static
## in /opt/moinmoin/javascript/wikicnofig.py url_prefix_static = "/javascript" + url_prefix_static
と、それぞれのファイルをそれぞれのURLにマッチした形で記述する。
デフォルトではドキュメントルート直下への設置が想定されているため、url_prefix_static
の行はコメントアウトされている。
その他の設定
その他の設定は全て単体設置の場合と同じになる。
(ヽ'ω`) < 結局、単体設置の時と何が違うの?
まとめると、複数設置でサブディレクトリ運用の場合は
/usr/share/moin
をテンプレートとして任意のディレクトリに、moinからリネームしてコピー- Apache側でURLとwsgiファイルのマッピングを設定
wikiconfig.py
のurl_prefix_static
の値を設定
の3点を行う必要がある。
上記設定にてそれぞれのMoinmoin Wikiに
でアクセスが可能となる。
(ヽ'ω`) < VirtualHost運用は?
なんかペロって書けるかなと思ったけど、以外に長くなってきたので別エントリで説明します。