Simplify homepage, show chapter counts, display directory, trim bottom nav, in-page match feature, move marketing content, and enhance "My" page. #VERCEL_SKIP Co-authored-by: undefined <undefined+undefined@users.noreply.github.com>
7.4 KiB
7.4 KiB
I. 概述 本流程文档旨在指导您如何通过 GitHub 的 Webhook 功能,实现代码提交后自动同步到宝塔面板服务器,从而完成网站内容的自动化部署。这将极大地提高您的开发效率,减少手动部署带来的重复劳动和潜在错误。 II. 前提条件 在开始配置之前,请确保您已具备以下条件:
- GitHub 账号:并已拥有一个托管项目代码的仓库。
- 宝塔面板服务器:一台已安装宝塔面板的 Linux 服务器,并确保已安装 Nginx/Apache、PHP 和 Git 环境。
- 项目代码:您的网站或应用代码已完整地托管在 GitHub 仓库中。
- Composer (如果项目是 PHP):PHP 项目需要确保服务器上安装了 Composer,用于管理项目依赖。 III. 流程概览 以下是自动化部署的整个流程图: ```mermaid graph TD A[提交代码到GitHub] --> B{GitHub Webhook}; B --> C[发送Payload到宝塔面板]; C --> D[宝塔面板接收通知]; D --> E[触发部署脚本]; E --> F[执行 git pull]; F --> G[执行 composer install (可选)]; G --> H[清理网站缓存 (可选)]; H --> I[网站内容自动更新]; ``` 流程说明: 当您将代码提交(Push)到 GitHub 仓库后,GitHub 会通过预设的 Webhook 向您的宝塔面板服务器发送一个通知(Payload)。宝塔面板接收到这个通知后,会触发一个预设的部署脚本,该脚本通常会执行 git pull 拉取最新代码,并可能运行 composer install 安装依赖,以及清理网站缓存等操作。最终,您的网站内容将自动更新到最新版本。 IV. 具体配置步骤 A. GitHub 仓库配置
- 选择或创建项目仓库: 登录您的 GitHub 账号,选择或创建一个您需要自动部署的项目仓库。
- 配置 Webhook:
这是实现自动触发部署的关键。
- 进入您的 GitHub 仓库页面,点击顶部的 Settings(设置)。
- 在左侧导航栏中,点击 Webhooks。
- 点击 Add webhook(添加 Webhook)。
- 填写以下信息:
- Payload URL:这个 URL 需要从宝塔面板中获取。请暂时留空,我们将在后面的宝塔面板配置步骤中获取并填回。
- Content type:选择
application/json。 - Secret (可选,但强烈推荐):设置一个随机且复杂的字符串作为密钥。这个密钥用于验证请求是否真的来自 GitHub,增强安全性。例如:
your_github_webhook_secret_123。请务必牢记这个密钥,稍后宝塔面板中会用到。 - Which events would you like to trigger this webhook?:选择
Just the push event.(仅推送事件)。这意味着只有当您向仓库推送代码时,Webhook 才会触发。 - Active:确保此选项被勾选。
- 点击 Add webhook 完成添加。 B. 宝塔面板服务器配置
- 登录宝塔面板: 使用您的账号密码登录到宝塔面板。
- 确保服务器环境: 确认您的服务器已安装 Nginx (或 Apache)、PHP (版本需与项目兼容,例如 PHP 7.4) 和 Git。如果 Git 未安装,您可以通过宝塔面板的"软件商店"进行安装。
- 创建或选择网站: 在宝塔面板中,进入 网站 菜单,创建或选择您要部署代码的网站。确保网站的根目录(运行目录)与您的项目部署路径一致。
- 设置 Git 部署:
宝塔面板提供了便捷的 Git 部署功能。
* 在网站列表中,找到对应的网站,点击右侧的 设置。
* 在网站设置窗口中,找到 Git 选项卡,点击进入。
* 启用 Git 部署:打开 Git 部署功能。
* 选择平台:选择
Github。 * 项目地址:填写您的 GitHub 仓库的 HTTPS 地址。例如:https://github.com/your-username/your-repo-name.git。 * 分支:填写您希望自动部署的分支名称,通常是main或master。 * Token:填写您在 GitHub Webhook 配置中设置的Secret密钥。 * 项目部署目录:宝塔会自动填写网站的根目录,请确保它是您项目代码实际要部署的路径。 * 部署类型:选择拉取。 * 部署完成后执行的命令 (最重要):这是自动化部署的核心。当代码拉取完成后,宝塔会执行这些命令。您可以根据您的项目类型填写相应的命令。- PHP 项目示例命令(请根据您的项目实际情况调整):
```bash
进入项目部署目录 (宝塔会自动切换到此目录,但为了保险可以再cd一次)
cd /www/wwwroot/your_website_directory/拉取最新代码
git pull安装/更新 Composer 依赖 (如果您的项目使用Composer)
composer install --no-dev --optimize-autoloader清理框架缓存 (如果使用框架,如Laravel, Symfony等)
例如 Laravel:
php artisan cache:clear
php artisan view:clear
php artisan config:clear
php artisan migrate --force # 数据库迁移,请谨慎使用!
刷新权限 (有时需要)
chown -R www:www .
chmod -R 755 .
chmod -R 777 storage bootstrap/cache # 给予某些目录写入权限
``` 请根据您的项目实际情况,选择并修改适合的命令。 * Webhook URL:在您配置完上述信息并保存后,宝塔面板会为您生成一个WebHook地址。复制这个 URL。
- PHP 项目示例命令(请根据您的项目实际情况调整):
```bash
- 返回 GitHub 配置 Webhook: * 回到 GitHub 仓库的 Webhook 设置页面。 * 编辑您之前创建的 Webhook。 * 将刚刚从宝塔面板复制的 WebHook地址 粘贴到 Payload URL 字段中。 * 点击 Update webhook 保存。 V. 常见问题与排查
- Webhook 接收失败:
- 检查 GitHub Webhook 设置中的 Payload URL 是否正确,是否与宝塔面板生成的 URL 一致。
- 检查 Secret 密钥是否在 GitHub 和宝塔面板中设置一致。
- 检查服务器防火墙或安全组,确保 GitHub 的请求可以到达宝塔面板的 8888 端口(或其他自定义的宝塔面板端口)。
- 查看 GitHub Webhook 的 Recent Deliveries,检查是否有红色感叹号,并查看具体错误信息。
- 部署命令执行失败:
- 查看宝塔面板中网站的 日志,或在 计划任务 中查看 Git 部署的日志,可以找到具体的错误信息。
- 确认部署命令中的 PHP 版本、Composer 路径等是否正确。
- 检查项目依赖是否已正确安装,或 composer install 命令是否正确。
- 检查文件和目录的权限,确保 www 用户(Nginx/Apache 运行用户)对项目目录有读写权限。
- 代码未更新:
- 检查 git pull 命令是否执行成功。
- 如果使用了缓存,确保缓存清理命令正确执行。 VI. 注意事项
- 安全性:
Secret密钥非常重要,请妥善保管,不要泄露。 - 分支管理:建议只对生产环境或主分支(如
main或production)进行自动部署,开发分支可以手动部署或使用单独的测试环境。 - 环境区分:生产环境和开发环境应严格区分,避免将开发中的不稳定代码直接部署到生产环境。
- 备份:在进行任何部署操作之前,务必定期备份您的网站代码和数据库。