gitee+微信云托管+phabricator搭建程序员团队协同开发,实现项目从0到上线的工作平台

先来看一看整体解释图,大概了解一下整体
这篇我们主要是讲解如何部署、配置、运行phabricator

整体结构图

准备工作

  • 购买轻量应用服务器:系统镜像-ubuntu22.04

  • 已经备案的域名

  • 下载finalShell,用于ssh连接服务器,下载地址:http://www.hostbuf.com/t/988.html

轻量应用服务器购买后要做的事情是

  • 重置登录密码
    重置登录密码
  • 域名解析,把域名解析到服务器IP

1、用finalShell连接服务器,
按如下命令依次安装配置phabricator

//打开根目录
cd ../  
//创建存放phabricator目录
mkdir var/www
mkdir var/www/pha 
//打开刚刚创建的目录
cd var/www/pha
//下载phabricator、libphutil、arcanist
git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git

//下载安装nginx
add-apt-repository ppa:nginx/stable
apt-get update
apt install -y nginx
//检查是否监听80端口
netstat -na | grep 80
//此时,访问你的服务器ip地址显示welcome to nginx....就可以了

//将系统的语言环境设为en_US.UTF-8(美国英语 UTF-8编码)
//然后向系统中添加一个名为ppa:ondrej/php的PPA(Personal Package Archive),其中包含了PHP软件包。 
//PPA允许用户在Ubuntu系统中安装/更新软件包,这个PPA通常包含最新版本的PHP软件包。
LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
//更新本地apt软件包数据库的索引列表
apt-get update
//安装各类所需要的php环境
apt-get -y install php7.1 php7.1-mysql php7.1-fpm php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring

//返回根目录
cd ../../../
//修改fpm的配置,输入后按i开始编辑修改
vim /etc/php/7.1/fpm/pool.d/www.conf
//在listen = /run/php/php7.1-fpm.sock之后加入如下2行
listen = 9000 # 增加
listen.allowed_clients = 127.0.0.1 # 增加
//加入后,按esc,再输入:wq保存退出即可完成修改

//重启PHP
service php7.1-fpm stop
service php7.1-fpm start
//测试配置是否生效
netstat -na | grep 9000
//显示tcp6   0  0 :::9000 :::*  LISTEN表示成功

2、配置Nginx

域名比如是:p.mydomain.com,那么创建配置文件:/etc/nginx/conf.d/p.mydomain.com.conf

继续输入以下命令

vim /etc/nginx/conf.d/p.mydomain.com.conf

然后再按i进入编辑模式
添加如下内容:

server {
  server_name p.mydomain.com; # 换成自己的域名
  root        /var/www/pha/phabricator/webroot; # 配置根目录,无需更改

  location / {
    index index.php;
    rewrite ^/(.*)$ /index.php?__path__=/$1 last;
  }

  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;
  }
}

添加好以后,按esc退出编辑模式,再输入”:wq“保存并退出即可

3、连接数据库

查看微信云托管mysql云数据库的外网域名、端口、用户名、密码,备用。

微信云托管的云数据库

开始连接使用微信云托管的云数据库,按如下命令配置连接

//打开对应目录
cd var/www/pha/phabricator
//配置外网域名、端口、用户名、密码
//host填写外网域名xxxx.com
./bin/config set mysql.host 'xxxx.com'
./bin/config set mysql.user '用户名'
./bin/config set mysql.password '密码'
./bin/config set mysql.port '端口'

//初始化数据库
./bin/storage upgrade

//设置phabricator的url,自己的域名
./bin/config set phabricator.base-uri 'http://xxxxx.com'

//重新加载nginx
service nginx reload

4、设置管理员

这时,浏览器应该可以访问Phabricator了:http://p.mydomain.com(自己设置的域名)

作为第一个访问用户,可创建管理员账号。

注意,管理员不是标准用户。

如果能创建管理员,说明安装过程成功。

5、添加认证方式

这时可以添加认证方式(Auth Provider)。phabricator提供了多种认证方式,其中最基本的是用户名/密码的provider。

作为管理员,点击左侧菜单的Auth,选择Add Provider ,然后添加 Username/Password Provider即可。

安装过程到此基本结束,但还不能:

  • 发送用户邀请邮件及其他通知邮件
  • 创建git repository

下一部分将解决这些问题。

6、配置邮件发送

6.1、在var/www/pha/phabricator目录下执行以下命令,配置metamta.default-address和metamta.can-send-as-user:

./bin/config set metamta.default-address 2925956259@qq.com
./bin/config set metamta.can-send-as-user false

6.2、执行下面命令来创建其他配置的mailers.json文件

vim ./conf/local/mailers.json  

mailers.json内容如下:

[
   {
     "key": "stmp-mailer",  
     "type": "smtp",        // 采用smtp协议
     "options": {
       "host": "smtp.qq.com",    // 邮箱服务器的地址 也可以是域名
       "port": 465,               // 发送端口不加密是25 加密是465
       "user": "2925xxxx@qq.com",// 发送邮箱的账号
       "password": "hcprexxxxx",   // 发送邮箱的密码,就是QQ邮箱的smtp授权码
       "protocol": "ssl"         // 是否加密,如果上面是25 这一项就不需要写
     }
   }
]

添加好以后,按esc退出编辑模式,再输入”:wq“保存并退出即可

6.3、执行以下命令,将mailers.json加入到phabricator的local.json配置文件中

./bin/config set cluster.mailers --stdin < ./conf/local/mailers.json

6.4、 重启phabricator配置文件生效:

./bin/phd restart

6.5、测试发送邮件命令:

./bin/mail send-test --to xxxxx@qq.com --subject hello < ./conf/local/mailers.json
//成功的话,你的邮箱就可以收到一条邮件了

7、配置diffusion.allow-http-auth

访问前面设置的域名,如http://p.mydomain.com,依次点击左侧菜单config-settings-diffusion.allow-http-auth,设置diffusion.allow-http-auth的值为Allow HTTP Basic Auth

8、创建phabricator代码仓库

依次按照以下顺序来创建phabricator代码仓库。

1、点击左侧菜单的Diffusion

2、点击create repository

3、点击create git repository

4、输入name、description,然后create repository即可

5、点击左侧菜单URls

6、点击http://xxxxxxxxxx.git链接

7、点击Edit URl

8、I/O type 选No I/O,然后save changes

9、点击左上角的URls返回

10、点击Add New URl

11、URl填gitee平台的仓库链接,例如:https://gitee.com/yxh01/xxxx.git(前提是已经建好gitee平台的代码仓库)

12、I/O Type 选择observe(意思就是从gitee拉取代码回来到phabricator代码仓库,类似导入),然后create repository URl

13、点击Set Credential,然后add new credential ,然后输入name、username、password(其中username和password是gitee平台的账号密码),然后create credential,然后set credential

14、点击左上角的URls返回代码仓库界面,再点击左侧菜单的basics,再点Activate Repository激活仓库

15、等待片刻即可刷新界面,到此把gitee的代码导入phabricator代码仓库完成

16、点击view repository,检查是否能正常看到代码文件。如果此时查看仓库view repository的时候,界面报错提示类似 ‘/var/repo/5’ To add an exception for this directory, call: git config --global --add safe.directory /var/repo/5,出现这个情况是因为git觉得/var/repo/5目录不安全,则需要去服务器执行此命令:

//登录服务器后,执行以下命令
git config --system --add safe.directory "*"

16、URls-然后add new URl,URl填入gitee平台的仓库链接(例如:http:xxx.git),I/O Type选择Mirror(意思就是代码有了变动,可以手动推送代码到gitee平台)

17、点击I/O Type是observe的那个git链接,点击edit url,I/O type 选No I/O,然后save changes

18、再点击最下面的phabricator仓库自有git链接,点击edit url,I/O type 选Read/Write,然后save changes

19、点击view Repository,再点击clone,点击🔑钥匙图案进去设置仓库密码(VCS密码是clone代码的密码)

20、最后一步,检查仓库的各项状态是否正常。点击xxx仓库,再点击manage repository,滑到下面,如看到status,如果报错 Missing Binary git-http-backend,则要进入var/www/pha/phabricator目录执行以下命令:

//登录服务器后,执行以下命令
//返回根目录
cd ../
cd var/www/pha/phabricator
./bin/config set environment.append-paths '["/usr/lib/git-core", "/bin"]'

说明:如果不解决这个问题,无法clone拷贝下载代码到本地,所以如果这个报错,必须解决!!!

此时,就可以复制仓库的代码http://xxxxx.git链接clone代码到本地了。

21、但此时还无法push推送代码,需要登录服务器执行以下命令:

//打开根目录
cd ../
//赋值权限
chmod -R 777 ./var

此时就可以push推送代码到phabricator仓库了。

9、配置HeraId代码审核规则

以下两种push推送代码到phabricator代码仓库的情况都需要经过代码审核,才能push推送。

  • 把开发分支合并到master分支的时候需要代码审核。
  • 不小心直接在master分支修改代码并且直接提交的时候也需要代码审核

所以规则设置操作内容如下:

9.1、为了把开发分支合并到master分支的时候需要代码审核,所以配置Create Herald Rule: Commit Hook: Commit Content:

操作流程如下:

1More Applications 
2HeraId
3、create HeraId Rule
4Create Herald Rule: Commit Hook: Commit Content
5Global Rule
6、填写Rule Name
7New Condition增加选项,选项按如下内容配置:
When all of these conditions are met:
Branches contains master
Accepted Differential revision does not exist
Is merge commit is true

Take these actions every time this rule matches:
Block push with message: must code review

9.2、为了把开发分支合并到master分支的时候必须创建commit,所以配置commits:

1、create HeraId Rule
2、commits
3Global Rule
4、填写Rule Name
5New Condition增加选项,选项按如下内容配置:
When all of these conditions are met:
Branches contains master
Take these actions every time this rule matches:
Do nothing.

9.3、为了避免不小心直接在master分支修改代码并且直接提交,所以配置master分支修改也必须要审核,再配置一份Create Herald Rule: Commit Hook: Commit Content:

规则如下:

When all of these conditions are met:
Branches contains master
Accepted Differential revision does not exist

Take these actions every time this rule matches:
Block push with message: code must review

10、团队成员如何注册和注销

团队成员注册有2种方式:

  • 团队成员自行注册、管理员批准

1、访问http://dev.ijsj.top/

2、点击注册新用户

3、输入用户名、真实姓名、密码、邮箱

4、管理员root登录phabricator平台,点击左侧“people”,点击新申请的用户,approve user(批准用户即可)

5、此时用户就可以accept revision(接收同意同事的代码修改)

  • 管理员邀请团队成员,团队成员自行设置密码

1、点击create new user

2、点击create standard user,输入username,邮箱,确认创建即可

3、用户收到邮件后,点击创建密码即可完成新用户的创建

团队成员如何注销

1、点击people

2、点击manage

3、点击disable user或者delete user即可

到此,phabricator代码审核平台部署配置完成

下一篇再讲解团队成员如何使用phabricator代码审核工具来协同开发以及项目如何从0到上线的过程

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值