moinmoin の サーバ(VPS)へのインストール記録
VPS(Virtual Private Server)をレンタルしてそこに moinmoin をインストールしたのでその記録。
このエントリーに記録した Linux上のApacheへのインストール方法 は、moinmoin のオフィシャルヘルプの以下の項目
に該当します。 わたし自身も このページを参考にインストールしました。 (自分の都合と環境にあわせて多少アレンジしました。)
事前に把握しておいた方がよい基本認識
WWWサーバへインストールするウェブアプリケーションの中には、 ダウンロードしたアーカイブを WWWサーバのドキュメントルートに展開してインストール完了! というパターンもありますが、 moinmoinは違いました。
moinmoinは、
- Apacheなしで単体で作動させることも含めさまざまな使い方・組み合わせでの作動を考慮している
- moinmoinプログラム本体のアップグレード時にも最小の手間で(こちらで作成したWikiコンテンツに影響を与えないで)アップグレードできる設計になっている
など、優れた設計になっている反面、Apacheと一緒に使う場合などインストール方法によっては、 多少手間がかかるところがあります。
moinmoinのサイトに HelpOnInstalling というよくできたヘルプコンテンツがあるので、 これを一通り読んでからインストール作業を行う必要がありそうです。
わたしが行ったサーバ設定
- ルート権限付きのVPSレンタルサーバで設定した
- Apache(VirtualHost設定)上でmoinmoinを動かす
- スタートページは http://moin.foobar.net/mywiki とする
- moinmoin のプログラムは /var/www/moin 以下にインストールする
- wiki instanceは /var/www/wiki-instance/moin_foobar へインストールする
その結果、 wiki instance 関連のファイル・ディレクトリは...
- wikiconfig.py , data /, underlay/ は、/var/www/wiki-instance/moin_foobar/ 以下に配置される
moinmoin のインストール
Download
moinmoin download から moin-1.8.4.tar.gzを入手。
展開とセットアップ
作業用ディレクトリに展開します。
$ tar xfz moin-1.8.4.tar.gz
展開したディレクトリに移動して、セットアップを行います。
ここがポイントですが、諸事情により、
デフォルトのディレクトリにインストールしないで、
/var/www/moin にインストールします。
$ cd moin-1.8.4
$ su
# python setup.py install --prefix=/var/www/moin --record=install.log
wiki instance の作成
WikiInstanceCreation
を参考に wiki instance を作成します。
今回は、/var/www/wiki-instance/moin_foobar 以下に wiki instance を作成します。
WikiInstanceCreation
にあるインスタンス作成用スクリプトをこちらのディレクトリレイアウトにあわせて変更したスクリプト
(mycreateinstance.sh)。
#!/bin/bash
# path of MoinMoin shared files
#SHARE=/usr/share/moin
SHARE=/var/www/moin/share/moin
# path to target instance location
#INSTANCE=$1
INSTANCE=/var/www/wiki-instance/moin_foobar
mkdir -p $INSTANCE
cp -R $SHARE/data $INSTANCE
cp -R $SHARE/underlay $INSTANCE
cp $SHARE/config/wikiconfig.py $INSTANCE
chmod 777 -R $INSTANCE
echo "Done."
mycreateinstance.sh を実行して、wiki instance を作成します。
$ su
# sh mycreateinstance.sh
wikiconfig.py の編集
mycreateinstance.sh にて作成した wiki instance 内の wikiconfig.py(/var/www/wiki-instance/moin_foobar/wikiconfig.py) を編集して、 data_dir と data_underlay_dir を適切に設定します。
#data_dir = './data/'
data_dir = '/var/www/wiki-instance/moin_foobar/data/'
#data_underlay_dir = './underlay/'
data_underlay_dir = '/var/www/wiki-instance/moin_foobar/underlay/'
moin.cgi の用意
moinmoin を動かすCGIスクリプトです。 WWWサーバのドキュメントディレクトリに配置する必要があるCGIスクリプトは moin.cgi だけです。
moin.cgi 配置(コピー)
moin.cgi を、後から設定するApache設定にあわせて配置しておきます。
※今回の設定では、/var/www/html.moin_foobar をドキュメントルートとしています。
$ cd /var/www/html.moin_foobar
$ mkdir cgi-bin
$ cp /var/www/moin/share/moin/server/moin.cgi /var/www/html.moin_foobar/cgin-bin/
moin.cgi の設定
/var/www/html.foobar/moin/mywiki/cgin-bin/moin.cgi を設定します。
設定内容は、
sys.path に使用するモジュールが配置されたパスを追加します。
sys.path.insert(0, '/var/www/moin/lib/python2.4/site-packages')
sys.path.insert(0, '/var/www/wiki-instance/moin_foobar')
Apacheの設定
http://moin.foobar.net/ というURLを使用し、VirtualHost で設定していることが前提です。
Apacheの設定ファイル(わたしの環境では、/etc/httpd/conf/httpd.conf) を以下のように編集します。
<VirtualHost *:80>
DocumentRoot /var/www/html.moin_foobar
ServerName moin.foobar.net
ErrorLog logs/moin.foobar.net-error_log
CustomLog logs/moin.foobar.net-access_log common
ScriptAlias /mywiki /var/www/html.moin_foobar/cgi-bin/moin.cgi
Alias /moin_static184/ "/var/www/moin/share/moin/htdocs/"
</VirtualHost>
ここまで設定したら、Apacheを再起動してエラーがないか確認します。
# /etc/init.d/httpd restart
作動確認と仕上げ
http://moin.foobar.net/mywiki にブラウザでアクセスしてエラーが出ないことを確認します。
wikiconfig.py
一通り作動に問題がないことを確認したら、/var/www/wiki-instance/moin_foobar/wikiconfig.py を編集します。
# Site name, used by default for wiki name-logo [Unicode]
#sitename = u'Untitled Wiki'
sitename = u'My Wiki'
# a) if most wiki content is in a single language
page_front_page = u"MyStartingPage"
必要ならドキュメントルートに index.html を配置
moinmoin wiki の起点となるページは、 http://moin.foobar.net/mywiki/ になります。
http://moin.foobar.net/ にアクセスしたときに自動的に http://moin.foobar.net/mywiki/ へ移動するように、 moin_static184/index.html を参考に 以下のような内容の index.html を (/var/www/html.moin_foobar/index.htmlに)配置します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="refresh" content="0;URL=/mywiki/">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Click <a href="/mywiki/">here</a> to get to the FrontPage.
</body>
</html>
以上