(ヽ'ω`) < MoinmoinをCentOS6にインストール
(ヽ'ω`) < なぜMoinmoinなのか
という事を書き出すと長くなるので、それはまた別エントリーで。
一言で言うと、日本ではそんなにメジャーじゃないけど、海外では特にオープンソースコミュニティ系で多く使われているので、色々とノウハウがあるだろうというところが一番大きい。
国際化対応は済んでいるので、標準のインストールパッケージでも、そのまま日本語での運用が可能。
(ヽ'ω`) < いくつかのインストール方法
多くのその他のソフトウェアと同じく、Moinmoinもパッケージ管理システムからインストールする方法と、ソースからインストールする方法がある。
実はどちらの方法で入れたとしても、配置されるファイルの場所が少し違うだけで、実際に動作させるまでの手間はほとんど変わらない。
パッケージ管理システムからのインストール
CentOSには公式リポジトリ、epel共にMoinmoinは用意されていない。CentOSでパッケージ管理システムを使ってインストールしたいという事になると、Pythonのパッケージ管理システムのpipを使う。
# yum install epel-release # yum install python-pip # pip install moin
Debianの場合はpython-moinmoin
というパッケージ名で用意されているので、aptを使ってインストールが可能。
# apt-get install python-moinmoin
ソースからのインストール
公式ページからtarballをダウンロードして、適当なディレクトリ(/usr/local/src)に展開する。
展開後、作成されたディレクトリに入って以下のコマンドを実行する。
# python setup.py install --force --record=install.log
上記コマンドで、ファイルが配置される(デフォルトの場所は/usr以下 --prefix
オプションで変更可能)
ファイルの配置構成
どのインストール方法でインストールを行なっても、デフォルトでは配置されるファイルの構成は以下の通りとなる。
- /usr/bin/moin
- /usr/lib/python-
/site-packages/*** - /usr/share/moin/***
1と2については特にファイルを触ることはないので無視してもいい。
3の/usr/share/moin
のみにフォーカスを当てて設定を構築していく。
(ヽ'ω`) < 設定を書いていく
これで必要なファイルの配置は終わったので、次に設定を行なっていく。
ここでの設定については公式ドキュメントのHow toをベースに解説を行う。
設定は大きく5つのフェーズにわかれていて、
- 設定のためのファイルを準備する
- Apache(mod_wsgi)とMoinmoinをつなげる設定を行う
- Moinmoinの初期設定を行う
- ディレクトリのパーミッションを設定
- Wikiの基本的な設定(タイトルなど)
1では設定に必要なファイルをコピーする
2ではApache側のmod_wsgi
を設定してMoinmoinを起動させる準備をする
3ではMoinmoin側で使用するインストールの環境などを設定
4はそのまんま、ここまでがMoinmoinを動かすための設定
5ではインストールしたWiki自体の設定を行う
(ヽ'ω`) < 環境について
このメモを作成した際の環境については以下の通り
環境 | バージョン |
---|---|
OS | CentOS 6.5 x86_64 |
Moinmoin | ver1.9.7 |
Apache | httpd-2.2.15-29.el6.centos.x86_64 |
Python | python-2.6.6-37.el6_4.x86_64 |
mod_wsgi | mod_wsgi-3.2-3.el6.x86_64 |
Moinmoin以外についてはyum
でインストール。
また、Moinmoin WikiのURLはhttp://moinmion.hoge.com/
のように、/
直下をエントリポイントとする。
(ヽ'ω`) < 1.設定ファイルのコピー
繰り返しになるが、基本的に触るのは/usr/share/moin
ディレクトリの中身のみ。1つのMoinmoin Wikiは、1つのmoin
ディレクトリに対応する。(複数のMoinmoin Wiki設置については別エントリーで説明予定)
参考:
- (ヽ'ω`) < Moinmoinを複数個設置する(サブディレクトリ編) - (ヽ´ω`) < *****
- (ヽ'ω`) < Moinmoinを複数個設置する(VirtualHost編) - (ヽ´ω`) < *****
設定ファイルのコピー
まずは設定を書き込むファイルをコピーする。
## 設定ファイルのコピー前はディレクトリのみ [root@878eb2395ad2 moin]# cd /usr/share/moin [root@878eb2395ad2 moin]# ls -l total 16 drwxr-xr-x 5 root root 4096 Oct 8 07:06 config drwxr-xr-x 7 root root 4096 Oct 8 07:06 data drwxr-xr-x 2 root root 4096 Oct 8 07:06 server drwxr-xr-x 3 root root 4096 Oct 8 06:18 underlay ## 設定ファイルをコピー [root@878eb2395ad2 moin]# cp server/moin.wsgi . [root@878eb2395ad2 moin]# cp config/wikiconfig.py . ## ファイルがコピーされたことを確認 [root@878eb2395ad2 moin]# ls -l total 28 drwxr-xr-x 5 root root 4096 Oct 8 07:06 config drwxr-xr-x 7 root root 4096 Oct 8 07:06 data -rw-r--r-- 1 root root 1970 Oct 8 07:07 moin.wsgi drwxr-xr-x 2 root root 4096 Oct 8 07:06 server drwxr-xr-x 3 root root 4096 Oct 8 06:18 underlay -rw-r--r-- 1 root root 6800 Oct 8 07:07 wikiconfig.py [root@878eb2395ad2 moin]#
解説ページによっては上記のmoin.wsgi
とwikiconfig.py
をそのまま直接編集するように指示してあるところもあるけど、今回はコピーして編集する。
(ヽ'ω`) < 2.Apacheとの連携設定
必要なファイルの準備ができたので、次にApacheとの連携部分の設定を行う。
Apache側のコンフィグを追加
Apacheはmod_wsgi
を使ってPythonスクリプトを走らせるので、Apacheが先ほどコピーしたmoin.wsgi
を読み込むように設定する。
前提としてmod_wsgi
がyumでインストールされていて、Apacheのhttpd.conf
には既に以下のエントリーがあるものとする。
LoadModule wsgi_module modules/mod_wsgi.so
/etc/httpd/conf.d/moin.conf
というファイルを作成して、以下の内容を書き込む。(Debianの場合は/etc/apache2/sites-available/
内にあるVirtualHostの定義ファイルに追記する)
# # MoinMoin WSGI configuration # # you will invoke your moin wiki at the root url, like http://servername/FrontPage: WSGIScriptAlias / /usr/share/moin/moin.wsgi # create some wsgi daemons - use user/group same as your data_dir: WSGIDaemonProcess moin user=apache group=apache processes=5 threads=10 maximum-requests=1000 umask=0007 # use the daemons we defined above to process requests! WSGIProcessGroup moin # WSGISocketPrefix WSGISocketPrefix /var/run/moin-wsgi
今回は/
直下にMoinmoinを配置するので、WSGIScriptAliasは上記のとおりとなる。
このファイルの記述については、Moinmoinの設定と言うよりはmod_wsgiの設定の話なので、今回は深くまで触れない。
Moinmoinをサブディレクトリ運用で複数設置する場合については、別で説明する。
参考: (ヽ'ω`) < Moinmoinを複数個設置する(サブディレクトリ編) - (ヽ´ω`) < *****
(ヽ'ω`) < 3.Moinmion側のコンフィグを設定
Apache側のWSGIに関する設定は終わったので、今度はMoinmoin側のWSGIに関する設定を行う。
編集するファイルは、先ほどコピーした/usr/share/moin/moin.wsgi
。
ファイルの中身はPythonスクリプトそのもので、慣れてないとちょっと戸惑うが、各セクションにはちゃんとコメントが書いてあるし、短い内容なので安心して欲しい。
ファイルを読んでいくと、a,bセクションに分かれており、aセクションは更にa1, a2と分かれている。
まずはaセクションだが下記の通りコメントが書いてある。
# a) Configuration of Python's code search path # If you already have set up the PYTHONPATH environment variable for the # stuff you see below, you don't need to do a1) and a2). # a1) Path of the directory where the MoinMoin code package is located. # Needed if you installed with --prefix=PREFIX or you didn't use setup.py. #sys.path.insert(0, 'PREFIX/lib/python2.3/site-packages') # a2) Path of the directory where wikiconfig.py / farmconfig.py is located. # See wiki/config/... for some sample config files. #sys.path.insert(0, '/path/to/wikiconfigdir') #sys.path.insert(0, '/path/to/farmconfigdir')
a1の設定
a1の項目には、Moinmoinをインストールした際に/usr/lib/python<version>/site-packages/***
が配置されta
が、そのパスを記述する。
設定ファイル内の例ではpython2.3
となっているが、今回の環境(CentOS 6.5)では/usr/lib/python2.6/site-packages
となっている。
例えばDebian7.6のaptでpython-moinmoin
をインストールした場合は/usr/lib/python2.7/site-packages
となった(2014/10/04現在)
インストール場所を指定していない場合は、/usr/lib/python<version>/site-packages
でOKだが、ソースインストールの際に--prefix
オプションを付与した場合などは、場所が変わるので要注意。
ソースからインストールした場合は--record
オプションを付与することで、ファイルのインストール場所が指定のファイルに吐き出されるのでそれを確認する。
aptでインストールした場合はdpkg -L python-moinmion
で確認が可能。
a2の設定
a2の項目はwikiconfig.py
ファイルが置いてあるディレクトリ名を指定する。
今回の場合はファイルを/usr/share/moin
にコピーしたので、/usr/share/moin
を指定する。
設定例
というわけで、実際に編集した内容は以下の通りとなる。
# a) Configuration of Python's code search path # If you already have set up the PYTHONPATH environment variable for the # stuff you see below, you don't need to do a1) and a2). # a1) Path of the directory where the MoinMoin code package is located. # Needed if you installed with --prefix=PREFIX or you didn't use setup.py. #sys.path.insert(0, 'PREFIX/lib/python2.3/site-packages') sys.path.insert(0, '/usr/lib/python2.6/site-packages') # a2) Path of the directory where wikiconfig.py / farmconfig.py is located. # See wiki/config/... for some sample config files. #sys.path.insert(0, '/path/to/wikiconfigdir') #sys.path.insert(0, '/path/to/farmconfigdir') sys.path.insert(0, '/usr/share/moin')
bセクションについては、とりあえず起動という事であれば関係ないので別記事で触れる。
(ヽ'ω`) < (なんか「別記事で」ばっかりや…)
(ヽ'ω`) < 4.ディレクトリパーミッションの設定
/usr/share/moinのowner:groupをapacheに変更して、オーナーとグループにのみ全権限を与える、 otherはアクセス権なし
# cd /usr/share # chown -R apache:apache moin # chmod -R ug+rwX moin # chmod -R o-rwx moin
CentOSの場合はユーザ・グループ名共にapache
だが、Debianの場合はwww-data
となる。(Apacheプロセスのオーナーを指定する。)
(ヽ'ω`) < ちょっと休もう
ここまでで大まかなインストールは完了。あとはWiki固有の初期設定を行なっていく。
本当はここまでをインストール編として区切ってしまって、あとはWikiの設定編として新しい記事にしたほうがいいのかもしれないが、
(ヽ'ω`) < やっぱり動いてる画面を見たいよね
(ヽ'ω`) < 5.Wikiの初期設定
4まででMoinmionのインストールが終わったので、ここではMoinmoinインスタンス(Wiki自体)の設定を行う。
設定は1でコピーしたファイルのもう一方、/usr/share/moin/wikiconfig.py
を編集して行う。中身はこれまたPythonスクリプトそのもの。各変数に値を指定することで、設定を行なっていく。
(ヽ'ω`) < はい、注目
wikiconfig.py
の記述の際に一つ注意点。Pythonではブロックをインデントで表現する。下記の文は、wikiconfig.py
内のConfig
クラス内に記述するので、1レベル分インデントする必要がある。また、Pythonではタブによるインデントと空白によるインデント、空白のインデントの場合その個数も区別される。
というわけで、下記の文は必ず先頭に半角スペース4つを挿入して記載する必要がある。
この約束を守らない(インデントが崩れている)と、以下の通りConfigurationErrorと表示されWikiにアクセスできなくなる。
Wiki名の設定
sitemname
で設定する。ここで指定した値は、各ページのタイトルに
<ページ名> - <Wiki名>
の形で表示される。
sitename = u"My First Wiki"
ダブルクオーテーションの前のu
に関してはPythonの中の話なので気にせずに。
トップページの名前の設定
Wikiのトップページの名前の設定はpage_front_page
で設定する。
理由はよくわからないが、コンテンツを複数言語で扱う場合は"FrontPage"と設定しろとコメントされて>いる。
# name of entry page / front page [Unicode], choose one of those: # a) if most wiki content is in a single language #page_front_page = u"MyStartingPage" # b) if wiki content is maintained in many languages page_front_page = u"FrontPage"
管理者ユーザ名(superuser)の設定
Securityセクションでsuperuser(管理者)の設定を行う superuser変数にユーザ名を代入する。複数人の管理者を作成することを考慮して、配列形式になっている。
superuser = [u"tsugihagi","hogeadmin",]
ここで一つ注意点、ここでは「ユーザを作成」したのではなく、「権限を持つユーザ名を指定」することになる。
多分よく意味がわからないと思うけど、とりあえず覚えておくと良いかも。
TimeZone(tz_offset)の設定
公式のドキュメントに記載は無いが、タイムゾーンの設定を行う。
デフォルト値は0.0
だが、ファイル内に記載がないので、最下部にでも以下の一行を追加する。
tz_offset = 9.0
(ヽ'ω`) < はい、おつかれさん
ここまでの作業が終わると、ようやくMoinmoinのWeb画面を表示することが可能となる。
Apacheを再起動して
# service httpd restart
http://domain or IP/ にアクセスすると、Moinmoinの画面が表示されるはず。
ここからユーザ作成と言語設定をすれば、とりあえずWikiとして使えるようになるんだけど、そこは次記事で。
次記事: (ヽ'ω`) < インストールしたMoinmoinを使ってみる - (ヽ´ω`) < *****
(ヽ'ω`) < CentOS 7は?
Platforms
CentOS 5.4 - 6.5
あくまでHow toの文章に対する話なので7でも動くんじゃないかと。