宝塔面板 Git 怎么部署
照着这篇做完,你能在宝塔面板的服务器上装好 Git 命令,把 Gitee/GitHub 仓库的代码拉到网站目录,并让每次 push 之后服务器自动更新——整个过程不需要手工传压缩包。
第一步:确认服务器有没有 git 命令
这一步是看服务器能不能执行 git,结果是拿到一个版本号。登录宝塔面板,点左侧菜单「终端」,输入:
git --version
如果返回 git version 2.x.x,直接跳到第二步。如果提示 command not found,在同一个终端里按系统装:
yum install -y git
# Ubuntu / Debian
apt update && apt install -y git
装完再执行一次 git --version 验证。
注意:宝塔面板的「软件商店」里没有 Git 这个软件,别在商店里翻,直接用终端装。
第二步:配置仓库密钥(私有仓库必做)
这一步是让服务器有权拉你的私有仓库,结果是服务器能免密访问 Gitee/GitHub。在终端里执行:
ssh-keygen -t rsa -b 4096 -C "deploy@server" -f ~/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pub
复制输出的整段公钥内容,粘贴到 Gitee 仓库的「管理」→「部署公钥管理」→「添加部署公钥」,或 GitHub 仓库的「Settings」→「Deploy keys」→「Add deploy key」。然后测试:
ssh -T git@gitee.com
看到 Hi xxx! You've successfully authenticated 就算通了。
注意:宝塔终端默认是 root 身份,密钥存在
/root/.ssh/。后面如果用 www 用户执行 git pull,它读的是/home/www/.ssh/,两套密钥不通用,会报Permission denied (publickey)。
第三步:用宝塔自带的 Git 部署拉代码
这一步是把仓库代码落到站点目录,结果是网站根目录里出现你的项目文件。点左侧「网站」,找到目标站点,点右侧「设置」,切到顶部「部署」标签页,选择「Git 部署」,填写:
- 仓库地址:
git@gitee.com:用户名/仓库名.git(或 HTTPS 地址) - 分支:
main(老仓库是master) - 部署路径:
/www/wwwroot/你的域名 - 备注:随便写
保存后点「部署」,等待完成即可。
注意:部署路径如果已有文件(比如宝塔默认的 index.html),Git 会拒绝拉取。先把目录清空,或者改用下面第四步的手动 clone。
第四步:手动 clone(首次部署更稳的方式)
如果第三步报错,直接在终端里来一遍。结果是代码和 .git 目录都在站点根目录:
cd /www/wwwroot/你的域名
git clone git@gitee.com:用户名/仓库名.git .
chown -R www:www /www/wwwroot/你的域名
末尾的 . 表示克隆到当前目录而不是新建子目录,别漏掉。
第五步:装 WebHook 插件做自动部署
这一步实现「本地 push,服务器自动更新」。点左侧「软件商店」,搜索「宝塔WebHook」,点「安装」。装完后在「已安装」里点它右侧的「设置」→「添加Hook」,名称填 deploy,脚本填:
#!/bin/bash
echo ""
cd /www/wwwroot/你的域名
git pull origin main 2>&1
echo "部署完成"
保存后复制插件生成的 WebHook URL,粘到 Gitee 仓库的「管理」→「WebHooks」→「添加」(GitHub 是 Settings → Webhooks → Add webhook),勾选 Push 事件。
注意:URL 里的
access_key和param两个参数一个都不能删,删了宝塔会返回 403。
注意:WebHook 插件有独立监听端口,要在宝塔左侧「安全」页面和云厂商控制台的安全组里各放行一次,否则 Gitee 推送记录里会显示「请求超时」。
回到 Gitee 的 WebHook 列表,点「测试」,返回 200 就说明链路通了。之后本地改代码 push,服务器会自动 git pull。
小结
- 宝塔软件商店没有 Git,用终端
yum install -y git或apt install -y git装。 - 私有仓库必须配 SSH 部署公钥,注意 root 和 www 用户的密钥是两套。
- 站点目录不为空时,自带的 Git 部署会失败,首次建议手动
git clone ... .。 - 自动部署靠「宝塔WebHook」插件,脚本核心是
cd 站点目录 && git pull。 - 安全组和面板「安全」页要放行 WebHook 端口,否则推送回调超时。
- 拉完代码记得
chown -R www:www 目录,否则网站可能因权限报错。
原文链接:https://www.gj0.com/thread-1096.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。