CentOS 7.1にKallithea 0.2.2をインストールする手順 (Apache + mod_wsgi)¶
最小構成でインストールした直後のCentOS 7.1にKallithea 0.2.2をインストールする手順です。Apacheとmod_wsgiを使用します。
OS環境設定¶
SELinuxを無効にする¶
/etc/sysconifg/selinux
をエディタで開き、 SELINUX=disabled
と設定してSELinuxを無効にしてください。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
編集後、設定を反映させるためにOSを再起動してください。
reboot
ファイアウォールで80/tcpを許可¶
Kallitheaをインストールするサーバに対して外部からhttp(80/tcp)でアクセスできるよう設定を変更してください。
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
必要なソフトウェアのインストール¶
yum install python-devel git
yum groupinstall "Development Tools"
easy_install pip
注意
CentOS 7標準のMercurialはインストールしないでください。バージョンが古いためKallitheaが正常に動作しません(Mercurialリポジトリの履歴にアクセスしようとするとinternal Server Errorが発生するなど)。
Kallitheaをインストールする際に適切なバージョンのMercurialが一緒にインストールされるのでこの段階でインストールする必要はありません。
Kallitheaのインストール¶
下記コマンドを実行するとKallitheaのダウンロードとインストールが行われます。インストール先は /usr/lib/python2.7/site-packages/kallithea
です。
pip install kallithea
情報
Mercurialなどの、Kallitheaの実行に必要なPython製ソフトウェアも一緒にインストールされます。
Kallitheaの環境設定¶
Kalliteaのデータを置くディレクトリを作成¶
設定ファイルやリポジトリなどKallitheaのデータを置くディレクトリを作成してください。以下の例は /var/lib/kallithea
にiniファイルを置き、 /var/lib/kallithea/repos
にリポジトリを置くことを想定しています。
mkdir /var/lib/kallithea
mkdir /var/lib/kallithea/repos
Kallitheaの設定ファイルを作成¶
設定ファイルのひな型を作成します。
cd /var/lib/kallithea
paster make-config Kallithea kallithea.ini
日本語化の設定¶
画面をデフォルトの英語ではなく日本語で表示されるように設定します。kallithea.ini
を開き、[app:main]
セクション内の lang =
に ja
と書き加えてください。
[app:main]
use = egg:kallithea
## enable proxy prefix middleware
#filter-with = proxy-prefix
full_stack = true
static_files = true
## Available Languages:
## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
lang = ja
cache_dir = %(here)s/data
index_dir = %(here)s/data/index
データベース作成¶
下記コマンドを実行してください。
paster setup-db kallithea.ini
実行中、対話形式で初期データの投入も行います。画面に表示される質問は下記の通りです。
- Are you sure to destroy old database ? [y/n]
- データベースを新たに作成してもよいかの確認です。もし既存のデータベースがあれば内容が消去されます。
y
と入力してください。 - Enter a valid absolute path to store repositories. All repositories in that path will be added automatically:
- GitやMercurialのリポジトリを作成するディレクトリを指定してください(例:
/var/lib/kallithea/repos
)。 - Specify admin username:
- 管理者のユーザー名を指定してください(例:
admin
)。 - Specify admin password (min 6 chars):
- 管理者のパスワードを指定してください。
- Confirm password:
- 管理者のパスワードを再入力。
- Specify admin email:
- 管理者のメールアドレス。
試しにいったん起動してみる¶
以上でKallitheaそのもののインストールは完了です。Apacheと連携させるための作業が残っていますが、インストールがうまくいったことを確認するために試しに起動してみます。
kallithea.ini
があるディレクトリ(例: /var/lib/kallithea
)で下記コマンドを実行すると localhost のポート5000 でKallitheaが起動します。
paster serve kallithea.ini start
下記コマンドを実行してトップページのコンテンツをコンソールに表示させてみてください。大量のHTMLが表示されますが、最後のあたりに “powered by Kallithea” の表示が見えればOKです。
curl http://localhost:5000
<p class="footer-link-right">
This site is powered by
<a href="https://kallithea-scm.org/" target="_blank">Kallithea</a> 0.2.2,
which is
<a href="http://localhost:5000/about#copyright">© 2010–2015 by various authors & licensed under GPLv3</a>.
– <a href="https://bitbucket.org/conservancy/kallithea/issues" target="_blank">サポート</a>
</p>
確認が終わったらwebサーバを停止させてください。
paster serve kallithea.ini stop
Apacheとの連携設定¶
Apacheとmod_wsgiのインストール¶
Apacheと、Apache上でPythonのwebアプリケーションを実行するためのモジュール mod_wsgi をインストールします。下記コマンドを実行してください。
yum install httpd mod_wsgi
Apacheのデフォルトのトップページを削除。
rm /etc/httpd/conf.d/welcome.conf
Apacheの設定¶
Apache上でKallitheaを実行するために以下の内容で /etc/httpd/conf.d/kallithea.conf
を作成してください。
WSGIDaemonProcess kallithea threads=2 inactivity-timeout=14400 maximum-requests=500
WSGIScriptAlias / /var/lib/kallithea/dispatch.wsgi
WSGIPassAuthorization On
<Directory "/var/lib/kallithea">
Require all granted
</Directory>
/var/lib/kallithea/dispatch.wsgi
を以下の内容で作成してください。これは、mod_wsgiから呼ばれてKallitheaを起動するためのスクリプトです。
import os
os.environ["HGENCODING"] = "UTF-8"
os.environ['PYTHON_EGG_CACHE'] = '/var/lib/kallithea/.egg-cache'
# Set the current dir
os.chdir('/var/lib/kallithea/')
import site
#site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
from paste.deploy import loadapp
from paste.script.util.logging_config import fileConfig
fileConfig('/var/lib/kallithea/kallithea.ini')
application = loadapp('config:/var/lib/kallithea/kallithea.ini')
Kallitheaのディレクトリのオーナー変更¶
Apacheがリポジトリなどを書き込めるよう /var/lib/kallithea/
以下のオーナーを下記コマンドを実行して変更してください。
chown -R apache:apache /var/lib/kallithea/
Apacheの起動と自動起動の設定¶
下記コマンドを実行し、Apacheを起動するとともにシステム起動時に自動起動されるよう設定してください。
service httpd start
systemctl enable httpd