Phabricator とは
facebook 製の LAMP 上で動作するプロジェクト管理ツール
Phabricator Facebook 製。プログラマー向けのプロジェクト管理·Phabricator MOONGIFT
Subversion のコミットに対してライン毎のコメントを付けたレビューが出来る数少ないツールとして、上手く使っていきたい。
環境
使用環境
AWS EC2 の Red Hat Enterprise Linux 7.0 (HVM), SSD Volume Type - ami-99bef1a9 を利用する。
メモリ 1GB だとメモリがかつかつになるので、2GB は欲しい。
準備
まずは yum update。
sudo yum update
SELinux は off にしておく
Apache VirtualHost で DocumentRoot does not exist でもあるのに。。 | KennyQi
LAMP 環境作成
AWS の公式のチュートリアルを参考に。
チュートリアル: LAMP ウェブサーバーのインストール - Amazon Elastic Compute Cloud
チュートリアル通りだと mysql-server がインストールできていなかったため下記を追加で実行する
sudo yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum で最新の MySQL をインストールする - Qiita
php-mbstring のインストール
phabricator の実行には php-mbstring が必要
今回使用した Red Hat Enterprise Linux のディストリビューションだと、php-mbstring のあるリポジトリが yum に登録されていないため、下記を参考にリポジトリの追加から行う必要がある
Redhat Enterprise Linux 6.4 (x64) でリポジトリを追加する
sudo yum-config-manager --enable rhui-REGION-rhel-server-optional
sudo yum install -y php-mbstring
Phabricator ダウンロード
Phabricator 公式サイトにあるインストール手順を参考に
Phabricator のソースをダウンロード
公式サイトで紹介されているインストール手順では Git が必要なので、まずは Git をインストール
sudo yum install -y git
Phabricator のファイルを格納したいディレクトリ上でインストールスクリプトを流す
curl -o install.sh http://www.phabricator.com/rsrc/install/install_rhel-derivs.sh
chmod +x install.sh
# yum installが実行されるので、sudoで
sudo ./install.sh
sudo chown -R ec2-user:ec2-user ./*
下記ディレクトリがダウンロードされる
phabricator
libphutil
arcanist
初期設定
Diffusion というレビューツールを使用するために先ほどダウンロードしたphabricator
ディレクトリ内の phd を起動する。
./phabricator/bin/phd start
また、リポジトリから取得したソースを格納するためのディレクトリ/var/repo
も作成しておく。
(ディレクトリのパーミッションを、Apache の起動ユーザが書き込み可能となるよう設定するのを忘れずに)
sudo mkdir /var/repo
sudo chown ec2-user:ec2-user /var/repo
Phabricator の設定
公式の設定手順を参考に
Apache/nginx/lighttpd での設定例が紹介されてますが、今回は Apache を使用
Apache の設定
公式を参考に /etc/httpd/conf/httpd.conf
に VirtualHost の設定を追加。
ServerName
をコメントアウトDocumentRoot
に先ほどインストールした’phabricator`ディレクトリをしてい
<VirtualHost *>
# Change this to the domain which points to your host.
# ServerName phabricator.example.com
# Change this to the path where you put 'phabricator' when you checked it
# out from GitHub when following the Installation Guide.
#
# Make sure you include "/webroot" at the end!
DocumentRoot /path/to/phabricator/webroot
RewriteEngine on
RewriteRule ^/rsrc/(.*) - [L,QSA]
RewriteRule ^/favicon.ico - [L,QSA]
RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
</VirtualHost>
Phabricator ディレクトリが Apache によって serve されない場所にある場合はDirecotry
の設定もhttpd.conf
に追加する
<Directory "/path/to/phabricator/webroot">
Order allow,deny
Allow from all
</Directory>
MySQL の設定
phabricator
ディレクトリ内の設定ファイルを使用して MySQL の DB を更新
Phabricator に MySQL のユーザ情報を設定
phabricator/ $ ./bin/config set mysql.host localhost
phabricator/ $ ./bin/config set mysql.user root
phabricator/ $ ./bin/config set mysql.pass ********
MySQL の設定を実行
phabricator/ $ ./phabricator/bin/storage upgrade
Phabricator 接続
ここまで来れば、とりあえず Phabricator に接続できるようになるはず。
Phabricator-Admin-Account.png (PNG 画像, 689x700 px)
Phabricator をアップデートしたい場合
phabricator にはリリースという概念がなさそうなので、好きな時にソースを最新化していく運用になりそう
- web サーバの停止
libphutil
arcanist
phabricator
それぞでのディレクトリでgit pull
phabricator/bin/storage upgrade
で DB 更新- web サーバ再起動
◉ Installation Guide - updating-phabricator
Updating Phabricator
Since Phabricator is under active development, you should update frequently. To update Phabricator:
Stop the webserver (including php-fpm, if you use it).
Run git pull in libphutil/, arcanist/ and phabricator/.
Run phabricator/bin/storage upgrade.
Restart the webserver (and php-fpm, if you stopped it earlier).
For more details, see Configuration Guide. You can use a script similar to this one to automate the process:
http://www.phabricator.com/rsrc/install/update_phabricator.sh