简介

现在项目成本投入高了,自然对项目的质量要求也愈来愈高,像发布好还发现明显的 bug,或性能低下这种问题已不能接受。

由于产品的质量和代码质量密切相关,而开发团队里并不是每个人都是大神,大家的经验能力都有分水岭,当一起协作开发项目,为了保持一致的代码风格,保证高质量的代码,代码审查变得愈加重要。最近一直在找好用的代码审查工具,网上很多介绍了 (Phabricator)[https://www.phacility.com/] , 而且它还是以前 facebook 开发并且还在使用的代码审查工具,网上了解了下,决定先用它试手。

安装

phabricator 用 php + mysql 开发的,运行环境可以用 lamp, 也可以用 lnmp, 我用了 lnmp,操作系统是 centos7。如何搭建 运行环境,网上很多资料,就不重复了,主要记录下我安装 phabricator 的过程。

1. 下载 phabricator 源码
git clone https://github.com/phacility/phabricator.git
2. 配置虚拟目录

nginx 或 apache 的虚拟服务器的路径要指向 phabricator下的 webroot目录,参考我的 nginx 配置

server {
listen 80;
server_name <your domain>;
#access_log /data/wwwlogs/phabricator.easymylife.cn_nginx.log combined;
#index index.html index.htm index.php;
root /data/wwwroot/phabricator.easymylife.cn/phabricator/webroot; # include /usr/local/nginx/conf/rewrite/wordpress.conf;
location / {
index index.php;
rewrite ^/(.*)$ /index.php?__path__=/$1 last;
} location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
} location /index.php {
fastcgi_pass localhost:9000;
fastcgi_index index.php; #required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200; #variables to make the $_SERVER populate in PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr;
}
}

其中上面的

  location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}

不能少,phabricator 官网的配置是没有这段的,会出现 nginx 502 的错误。

3. 配置数据库

phabricator/ $ ./bin/storage set mysql.host localhost
phabricator/ $ ./bin/storage set mysql.user <your mysql username>
phabricator/ $ ./bin/storage set mysql.pass <your mysql password>
phabricator/ $ ./bin/storage upgrade

然后登陆数据库,就可看到生成了好多 phabricator 作前缀的数据库

4. 登陆 phabricator

然后登陆到你为phabricator 配置的域名,可看到配置 admin 的页面。

配置 git repository 的坑

  1. 创建 repository;
  2. 配置 url;
  3. 设置该 url git 的登陆授权;
  4. 激活 repository;
  5. 查看 repository 的 status;
  6. 运行 phd 守护线程: phd 在 phabricator/bin/ 目录下, 把它添加到 export 中(.bash_profile), 然后 bash phd start ;
  7. 创建 /var/repo 目录;
  8. 设置 bas-uri: bash phabricator/ $ ./bin/storage phabricator.base-uri 'http://your domain/' ;

如果第 8 步少了, 在 repository 的 status 会一直处在 "No Working Copy Yet Waiting for daemons to build a working copy."(如下图) , 这个坑我不少呀。

搭建CodeReivew 工具 Phabricator的更多相关文章

  1. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

  2. C# 快速开发框架搭建—开发工具介绍

    C# 快速开发框架搭建—开发工具介绍 一.VS2013,SQL SERVER R22008 以上两种工具如有不会者自行百度学习下. 二.动软代码生成器 对于经典的三层架构框架来说,使用动软代码生成器会 ...

  3. android 搭建环境工具

    ---恢复内容开始--- 一.下载jdk 1.JDK可以去sun的官方网站下载Java SE Development Kit 6  http://java.sun.com/javase/downloa ...

  4. windows快速搭建FTP工具Serv-U FTP Server

    本文介绍一个简单的FTP工具,当然windows系统自带FTP工具,但是配置方法没有第三方工具来的简单可操作性好. 此工具用于搭建FTP环境,对于需要测试FTP上传功能具有极大帮助.例如球机抓拍图片上 ...

  5. 基于GitLab与Git Extensions搭建版本控制工具

    1.背景 大家知道GitHub是现在非常流行的代码托管工具,但是如果有些项目不想开源的话,则需要付费,因此萌生了自己搭建一个Git的版本控制工具,供内网使用.GitLab则是个好的选择,但是GitLa ...

  6. FTP服务器搭建基础工具:Serv-U 14.0.2使用教程

    安装教程   1.在本站下载好压缩包,将文件解压,双击运行“ServUSetup官方原版程序.exe”程序,弹出语言选择框,选择“中文(简体)”,点击“确定”开始安装   2.点击“下一步”进行安装  ...

  7. Ansible自动化搭建及工具集和常见模块、命令详情(重点)

    一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...

  8. Android 开发环境搭建以及工具(不断更新)

    学习android需要学习的编程知识 https://wiki.cyanogenmod.org/w/Doc:_Development_Resources 从http://source.android. ...

  9. X86上搭建交叉工具链,来给龙芯笔记本编译本地工具链(未完待续)

    故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技 ...

随机推荐

  1. Oracle 与 mysql 建立透明网关

    1.1.1.   文档编写目的 项目上需要做与Mysql数据库的对接,然而Oracle与Mysql数据库是异构的,因此这里采用透明网关的方式来解决. 另,项目上的环境为APP:12.2.6 ; DB: ...

  2. Hadoop HBase概念学习系列之HBase里的Zookeeper(二十一)

    这个,很简单,但凡是略懂大数据的,就很清楚,不多说,直接上图.

  3. weex+vue2.x 踩坑实录(不定期更新)

    执行 npm start 显示空白页面 这个是开始使用weex就出现的一个大坑,说实话对新手真的很不友好. 1.打开控制台显示:Cannot assign to read only property ...

  4. linux问题整理

    linux常用命令 //1.Linux如何查询进程?杀死一个进程? //2.文件权限,改变权限命令 //3.Linux中查看服务的命令 //4.linux查看内存 //5.查看磁盘空间的命令,查看文件 ...

  5. 记一次Eclipse关于JDK和JRE的问题

    今天同事遇到个问题,发现import package居然报错,但是那个package实际上存在.一般情况某个类有问题或者是该类中的方法有问题,总会在IDE中显示一条红线.但是这次确实是没有问题.我找到 ...

  6. Git同时使用不同平台代码仓库

    问题描述 公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同 ...

  7. Python2.7-ConfigParser

    ConfigParser模块,用于读写配置文件,配置文件是由各个 section 组成的,每个部分都有一个 [section] 头指示,后面紧跟这部分里的配置信息,一般为 name: value 或 ...

  8. P1550 [USACO08OCT]打井Watering Hole

    题目描述 Farmer John has decided to bring water to his N (1 <= N <= 300) pastures which are conven ...

  9. day32

    今日内容 1.基于TCP协议(通信循环) 2.基于TCP协议(连接循环) 3.粘包问题 4.模拟SSH实现远程执行命令 服务器端 ################################### ...

  10. jqgrid 在表格底部添加自定义按钮

    往往我们需要在jqgrid底部的分页行中添加一些自定义按钮,效果如下: 上图中,三个按钮均是自定义添加上的. 1.要新增自定义按钮在表格底部,仍离不开分页div,需要给jqgrid绑定分页方法 2.由 ...