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

版权声明:本文由贺嘉  原创文章,转载请注明出处: 
文章原文链接: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";

 

转载于:https://www.cnblogs.com/purpleraintear/p/6486148.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值