码云私有仓库+宝塔面板部署WebHooks实现代码同步

本文详细介绍了如何区分www和root账号的权限,以及如何为这两个账号生成SSH密钥。强调了不建议使用root权限,并提供了添加公钥到码云的步骤。此外,还阐述了如何通过宝塔面板的webhook插件实现从码云自动同步项目到web服务器的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

权限问题,要分清楚两个帐号的权限www和root

sudo -u www ssh -T git@gitee.com
sudo -u root ssh -T git@gitee.com

看清楚是用那个,建议用WWW帐号权限,不能用ROOT权限(最高权限不建议)

所以生成SSH是要注意要用那个帐号来生成:

一、root权限

生成钥匙代码:

ssh-keygen -t rsa -C “xxxxx@xxxxx.com”

这个方式生成的钥匙默认是ROOT帐号生成,生成路径:/root/.ssh
查看公钥:

cat /root/.ssh/id_rsa.pub

二、www权限

生成钥匙代码:

sudo -u www ssh-keygen -t rsa -C "xxx@xxx.com" 

一直回车,生成秘钥成功,如下图
在这里插入图片描述
这个方式就是www帐号生成的权限,生成路径:/home/www/.ssh
查看公钥:

cat /home/www/.ssh/id_rsa.pub

三、添加公钥

登录码云,找到需要部署的项目,把刚刚生成的公钥添加到码云上
在这里插入图片描述

四、测试是否能连接码云

//分清楚用那个权限
//root
ssh -T git@gitee.com
sudo -u root ssh -T git@gitee.com
 
//www
sudo -u www ssh -T git@gitee.com

链接成功如下图
在这里插入图片描述
通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器指定路径下

确保web服务器里安装了git 可通过git –version查看

git --version

进入宝塔面板,软件管理-》宝塔插件,搜索wekhook,然后安装即可
添加webhook

脚本内容:
CentOS Git+码云+TP 宝塔webhook 实现把码云上的项目自动同步到web服务器(git@gitee.com: Permission denied (publickey).报错解决)_第4张图片

脚本代码:

# !/bin/bash
echo ""
# 输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始-------"
# 判断宝塔 WebHook 参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "-------结束-------"
          exit
fi
# web服务器 git 项目路径
gitPath="/www/wwwroot/xxxxx"
# 码云项目 SSH 网址 (重点: 千万不要用 https 地址)
gitHttp="git@gitee.com:xxx/xxxxx.git"
 	
echo "Web站点路径:$gitPath"
 
# 判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        # 判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
				rm -rf gittemp
        fi
        # 拉取最新的项目文件
        git reset --hard origin/master
        git pull
        # 设置目录权限
        chown -R www:www $gitPath
        echo "-----拉取成功-----"
        exit
else
        echo "该项目路径不存在"
        echo "-------结束-------"
        exit
fi

注意:添加完后,点击编辑查看脚本内容是否正确,在上图输入框输入的命令会被过滤,所以要重新添加shell命令进去

接下来就是在码云等其他平台里做配置了,这里以码云为例

  1. 打开码云仓库,添加WebHooks

  2. 设置私有仓库代码同步

更改宝塔hook脚本中的仓库地址为码云私有项目仓库的SSH连接地址

至此完毕,如果不成功,可以尝试更新一下webhook

在这里插入图片描述

宝塔面板webhook用git pull拉取远程代码失败解决方案

登录xshell之后重启一下宝塔服务

bt restart
### 购买服务器并使用宝塔面板部署PHP项目的流程 #### 选择服务提供商 为了购买服务器,可以选择知名的服务提供商如阿里、腾讯或者AWS。这些平台提供多种类型的虚拟私有服务器(VPS),可以根据需求选择合适的配置。 #### 创建VPS实例 登录所选的服务平台账户,在控制台创建一个新的VPS实例。设置操作系统为Linux CentOS版本,因为这是支持通过yum包管理器来简化软件安装过程的操作系统之一[^4]。 #### 远程连接至新购得的服务器 利用SSH客户端工具(例如PuTTY),按照服务商给出的信息远程登录到刚建立好的VPS上。这一步骤对于后续操作至关重要,因为它允许管理员直接操控远端机器上的资源和服务。 #### 下载并安装宝塔面板 一旦成功建立了与目标主机的安全shell会话,则可以执行官方提供的命令下载并启动宝塔面板的自动安装程序: ```bash yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec ``` 此脚本将会处理所有必要的依赖项以及完成整个环境搭建工作流的一部分。 #### 登录宝塔面板Web界面 安装完成后,默认情况下可以通过`http://<your_server_ip>:8888`访问图形化的用户接口。首次进入时需设定密以便安全验证目的;之后就可以开始配置网站和其他应用了。 #### 配置Nginx站点及SSL证书 在宝塔面板内部新增一个站点,并指定对应的根目录路径给它。编辑该站点的Nginx配置文件使其能够正确解析请求并将流量转发给后端的应用层组件。如果计划启用WebSocket功能的话,记得加入特定的位置规则以确保协议升级机制正常运作[^3]。 #### 上线PHP应用程序 最后一步就是把开发完毕后的PHP源上传至之前定义过的webroot位置下(/www/wwwroot/),调整权限使得它们可被读取和执行。此时应该已经可以在互联网范围内通过域名或公网IP地址浏览由自己亲手架设起来的服务啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙行者来也

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值