七、Phabricator简介

2024-05-10 21:48
文章标签 简介 phabricator

本文主要是介绍七、Phabricator简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

phabricator是针对git项目的code-review工具,还可以跟踪bug、记录需求、WIKI编写等

1. 概述

官网:https://www.phacility.com/ 
项目地址:https://github.com/phacility/phabricator 
Phabricator是一套基于Web的软件开发协作工具,一个Web应用用于帮助软件公司构建更好的软件。 
原是facebook员工开发的可视化代码评审工具,现在离开facebook去Phacility,并持续维护 
主要包含以下几个功能:

1. 源码的review与审核
2. 代码托管,代码浏览
3. BUG跟踪
4. 项目管理
5. 团队成员交流
6. 组织风险讨论
7. 事件备注,以及回顾(统计等)
8. 权限设置
9. 其他功能

注:以上部分来自本人翻译,有不正确的地方,请大家多多包含。哈哈

2. 安装

安装向导:https://secure.phabricator.com/book/phabricator/article/installation_guide/ 
Phabricator :一个基于LAMP架构的应用(Linux, Apache, MySQL, PHP)

环境要求:

1. 一个安装Linux操作系统的普通计算机,Linux版本不限(不支持Windows操作系统)
2. 一个共享域名(如phabricator.mycompany.com),测试时可以使用(127.0.0.1/局域网IP限局域网内使用),域名中必须包含‘.’,官方解释是为了兼容浏览器cookie,如果没有,域名校验不通过是无法访问的
3. 基本的Linux系统管理员技术(包括域名,IP,权限等配置,软件的安装等等)
4. web服务器(可以根据自身情况进行选择,包括Apache, Nginx, lighttpd等)
5. PHP, MySQL, and Git(基础组件的安装)

注意事项:

1. 共享主机域名:这个是必须的,而且必须用'.',Phabricator会对域名进行校验
2. Web服务器:(Apache + mod_php),(nginx + php-fpm)
3. ( MySQL 5.5+)(PHP 5.2+)

技术要求:常用命令行操作,软件安装,文件系统,进程管理,选项管理,软件配置,环境变量设置。

环境组件:

1. 官方提高了Ubuntu和RedHat安装脚本,如果使用这两款操作系统,可以直接使用脚本进行安装,不过还是推荐自行安装,可以遇到很多问题,然后有个更深入的理解,安装完后,直接参考配置向导进行配置。
2. git:项目版本控制
3. Apache, httpd, nginx
4. MySQL Server (mysqld, mysql-server)
5. PHP
6. Phabricator项目clone

APC安装(可选,推荐):pcre-devel

3. 配置

配置向导:https://secure.phabricator.com/book/phabricator/article/configuration_guide/

Phabricator:简单的基础配置介绍

基础配置:

1. 服务器配置(本文以Nginx配置为例,操作系统 MAC OS X)
2. 浏览器访问:Phabricator
3. 根据指示完成配置

Nginx服务器配置: 
nginx.conf

server {server_name phabricator.example.com;root        /path/to/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-redirectfastcgi_param  REDIRECT_STATUS    200;#variables to make the $_SERVER populate in PHPfastcgi_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;}
}

Nginx作为前端代理服务器,配置也比较简单,主要为虚拟主机配置

1. server_name(主机、域名配置),phabricator强制要求域名中必须包含'.',否则在域名校验的时候会失败,因为这个使我花了半小时找问题,结果使用127.0.0.1进行访问,问题成功解决。官方解释是为了保证浏览器cookie的正常使用
2. root(根路径配置):/path/to/phabricator/webroot
3. location / (首页配置) :index.php,phabricator使用php构建的
4. rewrite(重定向配置) : 
5. proxy(代理配置):使用fastcgi协议进行Nginx与phabricator的通信,主要就是请求的转发1. fastcgi_pass —— 代理主机以及端口配置2. fastcgi_index —— 代理首页3. fastcgi_param —— 相关参数配置,请求状态码,请求方式,等等参数

Nginx命令-》go

MySQL数据库存储配置: 
MySQL安装与配置-》go

加载Phabricator数据库:

phabricator/ $ ./bin/storage upgrade
  •  

如果使用的是没有root权限的用户进行配置,需要修改Phabricator的默认用户配置(使用Root或管理员权限用户进行配置,或者将当前用户赋予root权限):

phabricator/ $ ./bin/storage upgrade --user <user> --password <password>

强制执行命令: 
phabricator/ $ ./bin/storage upgrade –force 
注:当更新Phabricator后,及时对数据库进行更新

接下来的配置:

* setting up your admin account and login/registration with Configuring Accounts and Registration; or (设置管理员账号,登录与注册配置)
* understanding advanced configuration topics with Configuration User Guide: Advanced Configuration; or (高级配置)
* configuring an alternate file domain with Configuring a File Domain; or (备用文件主机配置)
* configuring a preamble script to set up the environment properly behind a load balancer, or adjust rate limiting with Configuring a Preamble Script; or (使用脚本来进行负载均衡配置,和限速配置)
* configuring where uploaded files and attachments will be stored with Configuring File Storage; or (文件上传以及附件存储配置)
* configuring Phabricator so it can send mail with Configuring Outbound Email; or (配置phabricator的邮件发送)
* configuring inbound mail with Configuring Inbound Email; or (接入邮箱配置)
* importing repositories with Diffusion User Guide; or (导入代码仓库)
* learning about daemons with Managing Daemons with phd; or (守护进程的配置和学习)
* learning about notification with Notifications User Guide: Setup and Configuration; or (通知的学习)
* configuring backups with Configuring Backups and Performing Migrations; or (备份配置)
* contributing to Phabricator with Contributor Introduction. (加入phabricator的开发维护)

3. 1 登录注册配置

用户访问配置: 
Phabricator支持多种登录方式,通过管理原账号可以开启或关闭相应的登录方式。

认证方式:

1. 用户名/密码,注册登录
2. LDAP(Lightweight Directory Access Protocol ):LDAP认证注册登录,具体详解-》go
3. oAuth认证协议进行注册登录(GitHub, Sina, Facebook, Google)
4. 其他认证方式:自定义认证方式

默认情况下,这些认证方式都是关闭的,需要管理原手动开启

覆盖管理员账号:此处的username是指Phabricator中的账号名称

phabricator/ $ ./bin/auth recover <username>
  •  

注:这里有两个概念,一个是Phabricator注册登录的username,一个是操作系统的用户,这两个将在后面的配置中会遇到,请不要弄混淆。

使用Web控制接口管理账号: 
使用管理员账号登录,在首页中点击/people/,进行管理

手动创建账号: 
有两种方式:1.通过上文提到的Web接口进行创建,2.通过命令行进行设置。很显然第一种方式比较简单

phabricator/ $ ./bin/accountadmin

3.2 高级配置

Configuration User Guide: Advanced Configuration(高级配置向导)

对环境配置与部署:通过配置,让Phabricator适应多种部署环境, 
这是一个相对复杂的专题,并不是必须的。

配置源:优先级从高到低排列

1. 数据库:数据被存储在数据库中,管理员可以通过Web页面进行修改,拥有最高的优先级,并可以对其他配置源进行覆盖。
2. 本地数据:数据被存储在~/conf/local/config.json,可以通过命令行进行修改或者进行用终端进行修改。
3. 配置文件:数据被存储在/conf/文件夹下,通过修改conf/local/ENVIRONMENT文件或设置环境变量PHABRICATOR_ENV生效。
4. 默认值:通过硬编码实现,不可编辑,优先级最低,可以被以上任何一个配置所覆盖

配置文件:配置文件通过了一个相对数据库配置的另一种动态选择,可以用于多环境部署。

创建配置文件:

1. exampleconfig.conf.php,文件名可自行定义,路径:phabricator/conf/custom/exampleconfig.conf.php
2. 内容如下所示:以键值对形式存在,'mysql.host' => 'localhost',如果存在多个则以","进行分隔
<?phpreturn array(// Specify whichever keys and values you want to set.'example.key' => 'examplevalue',);
 3.  选择配置文件:将配置文件的名称写入phabrictor/conf/local/ENVIRONMENT文件中
phabricator/ $ echo custom/exampleconfig > conf/local/ENVIRONMENT
phabricator/ $ cat conf/local/ENVIRONMENTcustom/exampleconfigphabricator/ $
      或者设置全局变量:PHABRICATOR_ENV,设置该变量后要设置Web服务器环境
# Shell
export PHABRICATOR_ENV=custom/exampleconfig# Apache
SetEnv PHABRICATOR_ENV custom/exampleconfig# nginx
fastcgi_param PHABRICATOR_ENV "custom/exampleconfig";# lighttpd
setenv.add-environment = ("PHABRICATOR_ENV" => "custom/exampleconfig",
)

参考

Phabricator 配置 
搭建安装Phabricator代码评审工具 
Phabricator入门手册

这篇关于七、Phabricator简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977645

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

SaaS、PaaS、IaaS简介

云计算、云服务、云平台……现在“云”已成了一个家喻户晓的概念,但PaaS, IaaS 和SaaS的区别估计还没有那么多的人分得清,下面就分别向大家普及一下它们的基本概念: SaaS 软件即服务 SaaS是Software-as-a-Service的简称,意思是软件即服务。随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。 它是一种通过Internet提供

LIBSVM简介

LIBSVM简介 支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工