版权声明:本文由贺嘉 原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/905333001487424158

来源:腾云阁 https://www.qcloud.com/community

一、搭建Phabricator开发管理平台

1.1 上传 SSL/TLS 证书

第一步:下载证书并解压

第二步:将证书和私钥上传到开发管理平台服务器

1. sftp buntu@123.207.229.22
2. put 1_dev.*

第三步:将证书和私钥复制到 /host/crt 文件夹
登录云主机 ssh ubuntu@123.207.229.22 ,运行以下命令

1. mkdir -p /host/crt
2. cp ~/1_dev.appcook.cn_bundle.crt /host/crt/https.cert
3. cp ~/1_dev.appcook.cn.key /host/crt/https.cert.key

1.2 创建 Phabricator 容器

登录云主机 ssh ubuntu@123.207.229.22 ,使用 docker run 命令, 创建一个名为 pha
的容器。

1. docker run -d --restart=always --name=pha \
2. -p 80:80 -p 443:443 -p 2222:22 \
3. --env PHABRICATOR_HOST=dev.appcook.cn \
4. --env MYSQL_HOST={{数据库内网地址}} \
5. --env MYSQL_USER={{数据库用户名(有建库权限)}} \
6. --env MYSQL_PASS={{数据库密码}} \
7. --env PHABRICATOR_VCS_PORT=2222 \
8. --env PHABRICATOR_REPOSITORY_PATH=/repos \
9. --env PHABRICATOR_HOST_KEYS_PATH=/hostkeys/persisted \
10. --env PHABRICATOR_STORAGE_TYPE=disk \
11. --env PHABRICATOR_STORAGE_PATH=/files \
12. --env SSL_TYPE=manual \
13. --env SSL_CERTIFICATE=/crt/https.cert \
14. --env SSL_PRIVATE_KEY=/crt/https.cert.key \
15. -v /host/hostkeys:/hostkeys \
16. -v /host/repo:/repos \
17. -v /host/files:/files \
18. -v /host/crt:/crt \
19. hachque/phabricator

1.3 解析域名

将域名 dev.appcook.cn 解析到 123.207.229.22
第一步: 登录腾讯云域名解析控制台

第二步: 进入主域名管理面板

第三步:添加 A记录 ( 建议以关联主机方式解析 )

1.4 安装配置

使用浏览器访问 https://dev.appcook.cn ,根据提示完成 Phabricator 配置。
第一步: 创建管理员账号

创建成功返回控制面板

第二步: 配置网页登录鉴权方式
进入auth应用

选择用户名密码认证

配置登录选项
配置成功

第三步: 添加公钥 (用于代码仓库)
进入设置面板

上传公钥

上传成功

第四步: 更新代码仓库所有者

1. #进入容器
2. docker exec -it pha /bin/bash
3.
4. #更改代码仓库所有者
5. chown git:wwwgrp-phabricator /repos

第五步: 配置 feed.http-hooks ( 自动部署 )
进入容器,使用 ./bin/config 命令配置 Feed hook

1. sudo docker exec -it pha /bin/bash
2. cd /srv/phabricator/phabricator
3. ./bin/config set '''feed.http-hooks''' '''[ "http://10.141.133.180:8090/1/feed/receive" ]'''

访问 https://dev.appcook.cn/config/edit/feed.http-hooks/ 检查配置

自动部署脚本 feed.php

1. <?php
2. function get() {
3. $args = func_get_args();
4. $return = "\n";
5. foreach ($args as $arg ) {
6.
7. if ( is_string($arg) ) {
8. $return .= $arg;
9. } else {
10. $return .= json_encode($arg,
11. JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES );
12. }
13. }
14.
15. return $return . "\n";
16. }
17.
18. function pull( $repo, $version, $user, $commit ) {
19.
20. file_put_contents("/data/web/auto.pull.log", get([
21. 'repo'=>$repo,
22. 'version'=>$version,
23. 'commit'=>$commit,
24. 'user'=>$user
25. ]), FILE_APPEND);
26. }
27.
28.
29.
30. // = "trheyi committed R2:69733891ae4f: Feed.Hook {{pull}} (authored by trheyi).";
31. $story = $_POST['storyText'];
32. if ( preg_match("/([0-9a-zA-Z]+) committed (R[0-9]+):([0-9a-zA-Z]+):(.+)(\{\{pull\}\})/", $story, $match ) ){
33.
34. $user = $match[1];
35. $repo = $match[2];
36. $version = $match[3];
37. $commit = $match[4];
38.
39. pull( $repo, $version, $user, $commit );
40. }
41.
42.
43.
44. $string = get([$_REQUEST, $_POST, $_GET]);
45. file_put_contents("/data/web/phabricator.feed.log", $string, FILE_APPEND);
46. echo "COMPLETE";

如何用Baas快速在腾讯云上开发小程序-系列2:搭建Phabricator开发管理平台的更多相关文章

  1. 如何用Baas快速在腾讯云上开发小程序-系列4:实现客户侧商品列表、商品详情页程序

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/431172001487671163 来源:腾云阁 h ...

  2. 如何用Baas快速在腾讯云上开发小程序-系列3 :实现腾讯云COS API调用

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/640268001487425627 来源:腾云阁 h ...

  3. 如何用Baas快速在腾讯云上开发小程序-系列1:搭建API & WEB WebSocket 服务器

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221059001487422606 来源:腾云阁 h ...

  4. 在腾讯云上把Laravel整合万向优图图片管理能力,打造高效图片处理服务

    推荐理由: 现如今数据爆炸性增长,人类生活产出的数据越来越多,文字信息,图片信息,视频信息:但有很多信息我们都无法直接使用,需通过一定的处理,才能够获取其中对我们有用的信息,在腾讯云上的万向优图能够对 ...

  5. 腾讯云上运行java程序过程

    1: 购买服务器(腾讯云,阿里云等) 2:安装centos操作系统: 3:安装jdkhttp://www.cnblogs.com/Amos-Turing/p/7403696.html 4:安装数据库( ...

  6. 使用腾讯云 GPU 学习深度学习系列之二:Tensorflow 简明原理【转】

    转自:https://www.qcloud.com/community/article/598765?fromSource=gwzcw.117333.117333.117333 这是<使用腾讯云 ...

  7. 腾讯云上免费部署HTTPS

    接上篇<腾讯云下安装 nodejs + 实现 Nginx 反向代理>,想从头一步到位的同学建议从上篇文章开始阅读.本文将继续介绍如何通过 Nginx 免费部署HTTPS. 留意下,这里的“ ...

  8. 腾讯云上PhantomJS用法示例

    崔庆才 前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没 ...

  9. 腾讯云上Selenium用法示例

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:崔庆才 前言 在上一节我们学习了PhantomJS 的基本用法,归根结底它是一个没有界面的浏览器,而且运 ...

随机推荐

  1. C# Callback思维

    方式一.用委托作为形参,把结果传回实参方式二.通过接口实现方式三.通过事件关联,适用桌面应用程序方式四.子窗体调用父窗体的函数(委托) 方式一.用委托作为形参,把结果传回实参 public parti ...

  2. ubuntu crontab 在时间段内随机执行一次

    crontab 在linux下做定时任务的命令, 1. 基本格式 * * * * * cmd 第一个表示:分钟 1-59, 每分钟用 */1 第二个表示:小时 023 第三个表示:日期1-31 第四个 ...

  3. RescuePro Deluxe恢复软件SanDisk

      RescuePro Deluxe恢复软件 注册码:RPDLX-0600-67844-04261-27951 买硬盘送的,没有用.   文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  4. Shell脚本编程基础笔记二

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8177697.html 一:输入 1:运行时参数 可以在启动脚本时,在其后输入参数. ./脚本 参数1 参数2. ...

  5. Window下对nodejs多版本管理GNVM

    Windows下对nodejs多版本的管理,实现随意切换! 官方地址: https://github.com/Kenshin/gnvm http://ksria.com/gnvm/ 01.下载GNVM ...

  6. android中webView加载H5,JS不能调用问题的解决

    使用了html5 页面,使用webView加载后发现 超链接的锚点不可以用 为webView设置下面两句就好了: mWebView.getSettings().setDomStorageEnabled ...

  7. mysql 物理数据存放

    报错误:1030 - Got error 28 from storage engine 3.在系统中查看/tmp是否已经满了: [root@localhost /]# df /tmp/ Filesys ...

  8. DataTables 全局设置中文语言

    参考来源:https://blog.csdn.net/qq_22690445/article/details/79682311 $.fn.dataTable.defaults.oLanguage = ...

  9. 不同局域网中同一IP地址的计算机怎么通信的

    1.IP地址在192.--.255之内的是私有地址,即192.168.1.56的电脑a是不能直接与192.168.1.56的电脑b进行通信的.他们需要用到NAT技术,即网络地址转换.2.NAT的作用是 ...

  10. lua -- 系统提示框

    -- -- Author: chentong -- Date: 2014-3-24 -- 系统提示: -- 先做个简单的,在中上位置出现提示,逐渐消失,如果有新提示,则直接删除旧提示. -- 规则: ...