phabricator介绍与搭建
时间:2022-07-22
本文章向大家介绍phabricator介绍与搭建,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Phabricator 是一款用于敏捷开发的项目管理软件,它集成了众多实用功能,包括:
- 代码管理:添加 Git, Mercurial 和 SVN 仓库,查看源码,review 代码
- bug 追踪:测试人员、开发人员协同工作
- 项目管理:项目的启动、进展、完成
- 工作板:所有任务一目了然
- wiki:构建文档
- 任务系统:创建任务、指派任务、完成任务、增加或降低优先级
- 博客系统:甚至可以写博客=
在安装Phabricator之前,我们需要先准备一个lnmp的环境,且PHP的版本有要求,PHP7.0的不可以,5.x和7.1以上的都可以支持
环境介绍
- centos7.5
- Php7.1.13
- nginx1.12.0
- mysql5.7
以上环境的安装不再讲述,下面是phabricator的安装及其一些配置
1、创建一普通用户
useradd git
usermod -p NP git #也可以直接修改/etc/shadow文件,找到git用户,将!!设置成NP
usermod -s /bin/sh git #也可以直接修改/etc/passwd文件,给git用户一个真正的shell
usermod -g wheel git
Vim /etc/sudoers
修改
%wheel ALL=(ALL) NOPASSWD: ALL
2、接下来将phabricator相关的文件下载下来
su - git
cd ~
git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git
3、创建目录,并设置链接mysql的配置文件
cd /home/git/phabricator/conf && mkdir -p custom
$ cat custom/mysql.conf.php
<?php
return array(
'mysql.host' => 'localhost',
'mysql.port' => '3306',
'mysql.user' => 'root',
'mysql.pass' => 'Chenfei@2018',
);
#指定配置文件位置
```
/home/git/phabricator/conf && echo custom/mysql > local/ENVIRONMENT
4、初始化,向数据库写入数据
/home/git/phabricator && ./bin/storage upgrade
5、修改nginx和PHP的配置文件
因为这里我们是以git用户的身份去下载的phabricator,所以我们的程序目录同样也是在git下,因此,我们这里直接将nginx和php用户都设置为git
#Nginx
cat conf.d/pha.conf server { server_name 10.0.3.107; root /home/git/phabricator/webroot;
location / { index index.php; rewrite ^/(.*)$ /index.php?__path__=/$1 last; }
location /index.php { fastcgi_pass 127.0.0.1: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 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
#Php
cat php-fpm.conf [global] pid = /usr/local/php/run/php-fpm.pid error_log = /var/log/php-fpm/php-fpm.log [www] user = git group = git listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 30 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 10
<p>
</p>
6、修改完成后,重启nginx和PHP服务,然后浏览器访问测试即可
如图
<img class="alignnone size-full wp-image-545 " src="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc678adf7d3.png" alt="" srcset="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc678adf7d3.png 2624w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc678adf7d3-150x61.png 150w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc678adf7d3-300x122.png 300w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc678adf7d3-768x313.png 768w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc678adf7d3-1024x417.png 1024w" sizes="(max-width: 2624px) 100vw, 2624px" />
7、问题记录
后面会出现一些issue,例如
<img class="alignnone size-full wp-image-547 " src="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1787f5.png" alt="" srcset="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1787f5.png 720w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1787f5-109x150.png 109w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1787f5-218x300.png 218w" sizes="(max-width: 720px) 100vw, 720px" />
phabricator比较好的地方就是可以很友好的提供错误修复方法,例如:
<img class="alignnone size-full wp-image-548 " src="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1a6a51.png" alt="" srcset="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1a6a51.png 1670w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1a6a51-150x74.png 150w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1a6a51-300x148.png 300w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1a6a51-768x379.png 768w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1a6a51-1024x505.png 1024w" sizes="(max-width: 1670px) 100vw, 1670px" />
我们按照提示输入命令即可解决
<img class="alignnone size-full wp-image-549 " src="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1b5af1.png" alt="" srcset="https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1b5af1.png 1720w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1b5af1-150x65.png 150w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1b5af1-300x131.png 300w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1b5af1-768x335.png 768w, https://www.devilf.cc/wp-content/uploads/2018/10/img_5bbc7bb1b5af1-1024x447.png 1024w" sizes="(max-width: 1720px) 100vw, 1720px" />
- Mongodb副本集+分片集群环境部署记录
- 线上mongodb 数据库用户到期时间修改的操作记录
- 微信小程序“授权失败”场景的处理
- 动软.net代码生成器 win2008 r2下无法连接oracle,以及vs2008模板丢失的解决
- ASP.NET Web API 支持 CORS
- oracle odp.net 32位/64位版本的问题
- Redis+TwemProxy(nutcracker)集群方案部署记录
- 金融科技新常态,未来开启拼“硬实力”阶段
- Mono 3 的默认Gc是Sgen
- Linux下Redis主从复制以及SSDB主主复制环境部署记录
- 单元测试同时支持 NUnit/MSTest
- log4net快速上手
- MySQL高可用方案-PXC环境部署记录
- Redis主从复制下的工作原理梳理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法