Phabricator とは

facebook 製の LAMP 上で動作するプロジェクト管理ツール

Phabricator Facebook 製。プログラマー向けのプロジェクト管理·Phabricator MOONGIFT

phacility/phabricator

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 公式サイトにあるインストール手順を参考に

◉ Configuration Guide

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 ./*

下記ディレクトリがダウンロードされる

初期設定

Diffusion というレビューツールを使用するために先ほどダウンロードしたphabricatorディレクトリ内の phd を起動する。

./phabricator/bin/phd start

また、リポジトリから取得したソースを格納するためのディレクトリ/var/repoも作成しておく。 (ディレクトリのパーミッションを、Apache の起動ユーザが書き込み可能となるよう設定するのを忘れずに)

sudo mkdir /var/repo
sudo chown ec2-user:ec2-user /var/repo

Phabricator の設定

公式の設定手順を参考に

◉ Configuration Guide

Apache/nginx/lighttpd での設定例が紹介されてますが、今回は Apache を使用


Apache の設定

公式を参考に /etc/httpd/conf/httpd.confに VirtualHost の設定を追加。

<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 にはリリースという概念がなさそうなので、好きな時にソースを最新化していく運用になりそう

  1. web サーバの停止
  2. libphutil arcanist phabricator それぞでのディレクトリでgit pull
  3. phabricator/bin/storage upgrade で DB 更新
  4. 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
comments powered by Disqus