前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用Baas快速在腾讯云上开发小程序之系列2:搭建Phabricator开发管理平台

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

原创
作者头像
贺嘉
修改2017-06-19 19:26:48
2.6K0
修改2017-06-19 19:26:48
举报
文章被收录于专栏:贺嘉的专栏贺嘉的专栏

一、搭建 Phabricator 开发管理平台

1.1 上传 SSL/TLS 证书

第一步:下载证书并解压

[1487423966157_421_1487423966764.PNG]
[1487423966157_421_1487423966764.PNG]

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

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

第一步: 登录腾讯云域名解析控制台

[1487423987493_8513_1487423987881.PNG]
[1487423987493_8513_1487423987881.PNG]

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

[1487424812601_4954_1487424813020.PNG]
[1487424812601_4954_1487424813020.PNG]

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

[1487424824049_6591_1487424824391.PNG]
[1487424824049_6591_1487424824391.PNG]

1.4 安装配置

使用浏览器访问 https://dev.appcook.cn ,根据提示完成 Phabricator 配置。

第一步: 创建管理员账号

[1487424882752_6257_1487424883022.PNG]
[1487424882752_6257_1487424883022.PNG]

创建成功返回控制面板

第二步: 配置网页登录鉴权方式

进入 auth 应用

[1487424892099_3123_1487424892361.PNG]
[1487424892099_3123_1487424892361.PNG]

选择用户名密码认证

[1487425002862_5300_1487425003324.PNG]
[1487425002862_5300_1487425003324.PNG]

配置登录选项

配置成功

第三步: 添加公钥 (用于代码仓库)

进入设置面板

[1487425021080_4227_1487425021412.PNG]
[1487425021080_4227_1487425021412.PNG]

上传公钥

[1487425036269_2784_1487425036551.PNG]
[1487425036269_2784_1487425036551.PNG]

上传成功

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

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/ 检查配置

[1487425096135_4661_1487425096637.PNG]
[1487425096135_4661_1487425096637.PNG]

自动部署脚本 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快速在腾讯云上开发小程序之系列1:搭建API & WEB WebSocket 服务器

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、搭建 Phabricator 开发管理平台
    • 1.1 上传 SSL/TLS 证书
      • 1.2 创建 Phabricator 容器
        • 1.3 解析域名
          • 1.4 安装配置
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档