Alan Moment
  • Introduction
  • 智慧家庭
    • Fibaro 系統整合便宜的 IP Cam
  • Life
    • 用AWS Glacier做最後的冷資料備份
    • 如何在macOS修改影音檔日期
  • 3D Printer
    • Atom2.5EX 之血淚組裝
    • 列印經驗紀錄
      • SpoolHolder
    • 製圖經驗
      • Turntable
      • 重製Atom3散熱風扇
    • 線材經驗
      • PETG
        • 首測
  • Kubernetes
    • 使用Kops建立Kubernetes
    • 使用HelmV2
    • Kubernetes的技術問題排解技巧
  • PHP
    • 管理PHP Library的利器Composer
    • PHP安裝JSON
    • Phalcon首發
    • Gearman Job Worker for PHP
    • Laravel 首發 !!!
    • Data Encrypt & Decrypt
  • Python
    • Django + Python 開發環境建置
  • Android
    • Android zipcode library of maven
    • Android use foreign object of OrmLite
    • ProgressBar while loading ListView of Android
    • AsyncTask download image by the Android
    • Use Thread control Android UI
    • Android Universal Image Loader
  • Ruby on Rails
    • Install rmagick on the Windows of Ruby on Rails
    • Ruby on Rails deploy on Heroku
    • Ruby on Rails 小問題
  • React
    • Ditched AngularJS for React
  • Tessel
    • 很潮的 Tessel
    • Connect to Slack on Tessel
    • Baby Help on Tessel
  • Node.js
    • CentOS 安装 Node.js 0.8.5
  • OOAD
    • Injection Principle Design Pattern
  • Linux
    • SSH免密碼登入遠端電腦
    • Apache與Tomcat的結合
    • The bash auto build
  • Hadoop
    • CentOS 5.5 + Hadoop 0.20
    • CentOS 5.5 + Hbase 0.94.8
    • Hadoop + Hbase 叢集環境
    • Hadoop 溝通橋梁之 Thrift 0.7
    • 使用MapReduce之替代方案Hive
    • 使用Sqoop將MySQL資料匯入Hbase
  • Database
    • 吃足苦頭的Mssql
  • IDE
    • Netbeans console中文亂碼解決方法
    • 用NetBeans開發Ruby On Rails
  • Agile
    • 淺談我的Agile
  • 協作工具
    • 建置專屬自己的Github之Gitlab
    • Gitlab 4.1 upgrade to Gitlab 6.0超偷懶方法
    • Install Phabricator and run on the Gitlab
    • Phabricator 基本應用
    • Phabricator review code應用
    • Redmine之基本建置與Scrum應用
    • Omnibus Gitlab 7 基礎操作
    • Git Push Notify to Slack on Gitlab
    • phabricator-extensions-Sprint 無法抓到正確的 Story Points
  • 其他
    • 慶祝Octopress開張
    • 走在時尚的尖端! Ghost
    • 大搬家
    • 網頁教學初體驗
    • 網路攻擊很猖狂
Powered by GitBook
On this page
  • 開始安裝
  • 修改 httpd-vhosts.conf
  • 設定 Mysql
  • Phabricator upgrade
  • 設定 Admin 帳號
  • 與 Gitlab 串接

Was this helpful?

  1. 協作工具

Install Phabricator and run on the Gitlab

PreviousGitlab 4.1 upgrade to Gitlab 6.0超偷懶方法NextPhabricator 基本應用

Last updated 3 years ago

Was this helpful?

最近跑的專案都是四個人以上同時開發,有時候程式碼被改了,Pull 下來改完衝突,發現程式碼都會錯亂。排除每個人對 Git 熟練度,我覺得 Gitlab 對於 Review code 做的似乎不是很友善。在跑的時候碰到這類型的問題,每次要解決都要花不少時間。

在某一次尋找 Git 相關教學的時候發現了一個蠻冷門的東西,當初看到這套的時候第一印象就覺得這也是版本控制,所以加入最愛後就沒再理他,當碰到最近的問題,才想到我似乎在哪裡有看到這種問題的 Solution。

這一套 Phabricator 是 Facebook 釋出的 Open Source,Facebook 也是為了解決 Code Review, Track Bugs, Browse Source...等等這些問題才會開發這一套系統。

開始安裝

在官網是很詳細的安裝方式我在這邊粗略的介紹一下。

要使用 Phabricator 一定得先安裝 git, apache, mysql, php, php extensions (mbstring, iconv...等)

  • git (usually called "git" in package management systems)

  • Apache (usually "httpd" or "apache2") (or nginx)

  • MySQL Server (usually "mysqld" or "mysql-server")

  • PHP (usually "php")

  • Required PHP extensions: mbstring, iconv, mysql (or mysqli), curl, pcntl (these might be something like "php-mysql" or "php5-mysql")

  • Optional PHP extensions: gd, apc (special instructions for APC are available below if you have difficulty installing it), xhprof (instructions below, you only need this if you are developing Phabricator)

他還有些版本的限制,必需要注意。安裝以上是比較基本的,接下來就是 clone。

$ cd somewhere/ # pick some install directory
somewhere/ $ git clone git://github.com/facebook/libphutil.git
somewhere/ $ git clone git://github.com/facebook/arcanist.git
somewhere/ $ git clone git://github.com/facebook/phabricator.git

clone 下來最好就在 libphutil、arcanist、phabricator 先執行git pull因為我沒有這樣做,多花了一個小時找問題阿...結果根本就不是最新的版本。

另外可以選擇是不是要安裝 APC、XHProf

修改 httpd-vhosts.conf

我的東西大部份都是部屬在 Apache 上這個也不例外。所以我加上 sub domain 相關的參數。

vim /etc/httpd/conf.d/httpd-vhosts.conf
<virtualhost>
  # Change this to the domain which points to your host.
  ServerName phabricator.example.com.tw
  # 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]
  <directory>
          Order allow,deny
          Allow from all
  </directory>
</virtualhost>

設定完 domain 訪問設定的網址,依照指示要先設定 Mysql。

設定 Mysql

$ cd /somewhere/phabricator/
$ ./bin/config set mysql.host mysql主機
Set 'mysql.host' in local configuration.
$ ./bin/config set mysql.user mysql帳號
Set 'mysql.user' in local configuration.
$ ./bin/config set mysql.pass mysql密碼
Set 'mysql.pass' in local configuration.

Phabricator upgrade

更新到最新的版本會有下列訊息。

./bin/storage upgrade
Before running storage upgrades, you should take down the Phabricator web
interface and stop any running Phabricator daemons (you can disable this
warning with --force).

    Are you ready to continue? [y/N] y

Loading quickstart template...
Applying patch 'phabricator:db.conpherence'...
Applying patch 'phabricator:db.token'...
Applying patch 'phabricator:db.releeph'...
Applying patch 'phabricator:db.phlux'...
Applying patch 'phabricator:db.phortune'...
Applying patch 'phabricator:db.phrequent'...
Applying patch 'phabricator:db.diviner'...
...
...
Done.
Storage is up to date. Use 'storage status' for details.

更新完畢後再回去網頁,會看到登入畫面。

設定 Admin 帳號

./bin/accountadmin
Enter a username to create a new account or edit an existing account.

    Enter a username: admin
There is no existing user account 'admin'.


    Do you want to create a new 'admin' account? [Y/n] Y



    Enter user real name: admin


    Enter user email address: xxx@xxxx


    Enter a password for this user [blank to leave unchanged]:

    Should this user be a system agent? [y/N] y



    Should this user be an administrator? [y/N] y



ACCOUNT SUMMARY

                OLD VALUE                        NEW VALUE
    Username                                    admin
    Real Name                                    admin
        Email                                    xxx@xxxx
    Password                                    Updated
System Agent   N                                Y
        Admin   N                                Y



    Save these changes? [Y/n] y

Saved changes.

最後就是需要開啟背景執行。

./bin/config set phabricator.base-uri 'http://phabricator.example.com.tw/'
Set 'phabricator.base-uri' in local configuration.
./bin/phd start
Staging launch...
NOTE: Logs will appear in '/var/tmp/phd/log/daemons.log'.

Launching 'PhabricatorRepositoryPullLocalDaemon'...
Launching 'PhabricatorGarbageCollectorDaemon'...
Launching 'PhabricatorTaskmasterDaemon'...
Launching 'PhabricatorTaskmasterDaemon'...
Launching 'PhabricatorTaskmasterDaemon'...
Launching 'PhabricatorTaskmasterDaemon'...
Done.

這樣就完成了,我覺得他的安裝非常簡單。安裝下來我也沒遇到什麼大問題。

與 Gitlab 串接

登入後在左邊的選單依序點選

ADMINISTRATION > Repositories > Create New Repository

表單中填入

Name: yout project name

Callsign: VCS

Type: Git

It is followed by the repository callsign, and then a VCS-specific commit identifier (for SVN, the commit number; for Git and Mercurial, the commit hash)。

下一步後依序設定:

Basics

Tracking: Enabled

Remote URI

Repository URI: your repository url

Repository Information

Local Path: your project path

Track Only: your want track branches

設定完就可以看到

點選 View in Diffusion 可以看到這個 repository 的各種記錄

若在某一次的記錄 review code 發現有問題都可以在 diffusion > Raise Concern,回報都會有紀錄存在直到消除 Raise Concern。

Sep 14th, 2013 11:09:00am

Callsign 為什麼是 VCS 因為有相關的設定可以參考。

Scrum
Phabricator
這邊
phabricator login
phabricator create repository
phabricator repository track
phabricator repository track tree