如何关联GitHub与AWS EC2 CodeDeploy推送CodeIgniter3网站PHP代码
无编译环节的GitHub-EC2(CodeIgniter 3)自动同步方案
完全匹配你「代码push后直接同步文件、跳过所有构建编译流程」的需求,可落地的实现路径如下:
方案1:轻量自研链路(零额外成本,适配现有PHP环境)
- 先完成EC2侧的基础仓库配置:将EC2上现有CodeIgniter站点目录初始化为Git仓库,关联你的GitHub远端仓库,配置好SSH免密拉取权限;务必将生产环境专属配置文件(如
application/config/database.php、环境专属参数配置)加入.gitignore,避免同步时覆盖生产配置导致站点故障。 - 在站点目录下编写极简部署脚本
deploy.sh,全程无编译类操作,核心逻辑仅三步:
为脚本赋予可执行权限即可。#!/bin/bash # 切换到站点根目录 cd /你的CodeIgniter站点绝对路径 # 拉取生产分支的最新代码 git pull origin main # 修正CodeIgniter需要写权限的目录所有者 chown -R www-data:www-data application/cache application/logs application/uploads - 直接复用EC2上已有的PHP运行环境,写一个带密钥校验的极简Webhook接收接口:接口逻辑仅为校验GitHub推送请求携带的密钥是否匹配,校验通过则调用上述
deploy.sh脚本执行拉取。后续在GitHub仓库的设置页填入该接口的公网访问地址、对应校验密钥即可完成绑定。只要向指定分支push代码,GitHub会自动触发请求,EC2侧直接拉取最新文件完成同步。
方案2:低代码部署工具(零脚本编写成本)
如果不想自行编写接收接口,可选择支持纯文件同步、无强制构建流程的轻量部署工具,配置时仅需完成三个核心设置:
- 关联目标GitHub仓库,设置触发条件为push到指定生产分支
- 填入EC2的SSH登录凭证,指定站点的目标部署目录
- 关闭所有默认的构建、编译步骤,设置为「拉取代码后直接覆盖同步文件」
这类工具不会强制插入你不需要的依赖安装、编译打包环节,完全匹配直接同步文件的需求。
场景专属避坑提醒
- 所有同步逻辑必须排除生产环境的动态配置文件,避免代码拉取后覆盖本地数据库连接、站点域名等关键参数。
- 部署脚本执行时要记录操作日志,将每次
git pull的输出、异常信息追加到独立日志文件,方便排查同步失败问题。 - Webhook接收接口必须设置强密钥校验,避免被恶意请求频繁触发同步操作。
内容的提问来源于stack exchange,提问作者chaky
相关产品推荐
相关产品推荐

