2009年7月23日木曜日

ReviewBoard1.0をインストールしてみた

ReviewBoardの1.0をインストールしてみました。
まだ使い方はよくわかっていませんがww

インストールの方法は、本家サイトのAdministration Guideに書いてあります。


インストールメモ
環境は以下でやりました。
OS : VMWare上のDebian
DB : MySQL
WebServer : lighttpd

また、別の環境でUbuntuにも同じ手順でインストールしてみたが上手く動いている様子。

VMWareにDebianをインストール。
インストール後、scsiが認識できない的なメッセージが出て起動しない問題が発生。
.vmxファイルに、以下を追加することで起動できるようになった。
scsi0.virtualDev = "lsilogic"

apt-getを更新
$ sudo apt-get update
$ sudo apt-get upgrade

Python,setuptoolのインストール
$ sudo apt-get install python-setuptools
$ sudo easy_install -U setuptools
$ sudo apt-get install python-dev

後にnose, Sphinxをインストールする時に、python-devってのがいるみたいです。
python-devを入れていないと以下のエラーがでちゃいます。

jinja2/_speedups.c:58: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
jinja2/_speedups.c:120: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token



memcachedのインストール
$ sudo apt-get install memcached
$ sudo apt-get install libmemcache-dev
$ sudo easy_install http://gijsbert.org/downloads/cmemcache/cmemcache-0.95.tar.bz2

パッチのインストール
$ sudo apt-get install patch

ReviewBoardのインストール
$ sudo easy_install ReviewBoard

MySQLのインストール
ReviewBoard用のDB,ユーザ/パスワードを作成しておきます。
必要なTable類は、ReviewBoardのSite作成時に作ってくれるので気にしなくてOK.

$ sudo apt-get install MySQL-server
$ sudo easy_install mysql-python
$ sudo apt-get install python-mysqldb

Database,ユーザの作成
$ mysql -u root -p
mysql> create database reviewboard character set utf8;
mysql> grant create, select, insert, update, delete, alter, lock tables on reviewboard.* to 'reviewboard'@'localhost' identified by 'reviewboard';
mysql> flush privileges;



Subversionのインストール
$ sudo apt-get install subversion python-svn

nose,Sphinxのインストール
$ sudo easy_install nose Sphinx

lighttpdのインストール。
ReviewBoardではFastCGIっつーのを使っているんですが、lighttpdだと、Apache + mod_python or fastcgiよりも早いとか。

$ sudo apt-get install lighttpd

Configの設定はまた後で。

ReviewBoadのサイトを作成
$ sudo rb-site install /var/www/reviews.example.com

/var/www/reviews.example.comの所には、作成したいパスを設定します。
上記のコマンドを実行すると、DBの種類や、DBユーザ/パスワード、WebServerの種類などが聞かれますので、ちゃんと用意して望みましょう〜

権限の変更
作成したサイトのフォルダの権限を変更します。
$ sudo chown -R www-data /var/www/reviews.example.com/htdocs/media/uploaded
$ sudo chown -R www-data /var/www/reviews.example.com/logs

[www-data]っていうのは、lighttpdを実行するユーザ名です。
この設定は、/etc/lighttpd/lighttpd.conf にあります。

lighttpdのConfig設定

作成したサイトに conf/lighttpd.conf があります。このファイル中身はReviewBoardが実行できるような設定が書かれていて、既存のlighttpd.confに追加する形で使用できるようになっています。なので、/etc/lighttpd/lighttpd.confの最後にコピペするか、includeするとかで追加すればOK。

今回の場合は、includeしてくれ!と言わんばかりの構成を作ってくれているので、includeしてみました。
includeするファイルは、 /etc/lighttpd からの相対パスで判断されるので、
$ sudo cp /var/www/reviews.example.com/conf/lighttpd.conf /etc/lighttpd/reviews.example.com.conf

reviews.example.com.confってファイル名でコピー。

$ sudo vi /etc/lighttpd/lighttpd.conf
でconfigを開いて一番最後の行に
include "reviews.example.com.conf"
を追加。

これで、見直すのはコピーしたConfig(reviews.example.com.conf)のみでOKになります。
コピーしたコンフィグに書かれている、
$HTTP["host"] =~ ".........." {
は、ホスト名指定のバーチャルホストの設定とのこと。

今回は、とりあえず試しに入れてみた&他の端末からも見たい ような状況だったので、IP+ポートの指定で変更しました。
$HTTP["host"] =~ ".........." {

$SERVER["socket"] == "192.168.1.1:81" {

lighttpdの再起動
$ sudo /etc/init.d/lighttpd restart

これで無事にみれた。

ここまでやるのに、結構もたついてしまいました。。
こうやって書くと、何に時間くってたんだろう?って思ってしまうけどね〜

こんな事をしていたら、「Rietveldが自由に使える所あったやろ?」という話になり、探してみたらRietveld Code Review Tool
という所を発見。
自由にSubversionとかのリポジトリを登録して、レビューが出来るような所なのか?!
オープンソースのものだったら、ここで直ぐに使えそうですねー。

RietveldはGAEにものるそうで、セットアップも簡単らしい。 Google謹製 ソースコードレビューシステム rietveld(オープンソース版 Mondrian)を動かしてみましょう

やっぱ、セットアップ簡単じゃないとねー!

んでもってこれからは、
セットアップ無し。既にインスタンスされているサーバーを直ぐに使える。
って環境をどんどん作って欲しいもんです。

あと...コードレビューに限らず色んなサービスについて...
有料なら有料でいいけど、個人として試してみやすい料金体系にしてほしいですねー。
個人だからこそセットアップに手間をかけたくない!
• • •