You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Angular+CodeIgniter PHP应用部署到指定域名并配置GitHub代码托管

Angular+CodeIgniter前后端分离项目部署全流程

1. GitHub代码仓库配置与日常提交

因为你的前后端是独立代码包,建议创建2个独立仓库分别管理,避免配置冲突:

  • 仓库创建:登录GitHub,分别新建your-project-frontend、your-project-backend两个公开/私有仓库,不要自动生成README、LICENSE文件
  • 首次代码上传(以本地项目根目录为例):
    前端目录执行:
    git init
    git add .
    git commit -m "feat: 首次提交Angular前端完整代码"
    git branch -M main
    git remote add origin 你的前端GitHub仓库地址
    git push -u origin main
    
    后端目录执行相同逻辑,替换为后端仓库地址即可
  • 日常提交规范:每次修改代码后执行git add .→git commit -m "提交说明"→git push即可同步到GitHub

2. 托管主机前置准备

先确认你的主机满足以下基础要求:

  • PHP版本符合你使用的CodeIgniter版本要求(CI4要求7.4+,CI3要求5.6+),同时安装好curl、mbstring、mysqlnd等必填扩展
  • 已完成域名解析:将www.abc.com(前端)、api.abc.com(后端,可自定义)两个域名的A记录指向你的主机公网IP
  • 主机已配置好Web服务(Nginx/Apache),并创建两个站点分别对应前后端域名

3. 后端CodeIgniter部署步骤

  • 进入主机后端站点的根目录上层路径(避免敏感文件暴露到公网),执行git clone 你的后端GitHub仓库地址拉取代码
  • 将CI框架的public目录设置为api.abc.com站点的Web根目录
  • 复制项目根目录下的env文件为.env,修改核心配置:
    CI_ENVIRONMENT = production
    app.baseURL = 'https://api.abc.com/'
    database.default.hostname = 你的数据库地址
    database.default.database = 数据库名
    database.default.username = 数据库账号
    database.default.password = 数据库密码
    
  • 配置伪静态规则:
    Nginx配置添加到server段:
    location / {
      try_files $uri $uri/ /index.php?$query_string;
    }
    
    Apache配置添加到public目录下的.htaccess:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    
  • 权限配置:给app/Config、writable目录设置755权限,避免读写报错
  • 部署完成后访问https://api.abc.com测试接口是否正常返回

4. 前端Angular部署步骤

  • 修改前端项目里的API请求前缀为线上后端地址https://api.abc.com,提交代码到GitHub
  • 在前端项目根目录执行ng build --configuration production打包生产环境代码,打包完成后所有静态文件会生成在dist/你的项目名目录下
  • 将dist目录下的所有文件上传到主机www.abc.com站点对应的Web根目录
  • 配置单页应用路由重写规则,解决刷新404问题:
    Nginx配置添加到server段:
    location / {
      try_files $uri $uri/ /index.html;
    }
    
    Apache配置添加到Web根目录下的.htaccess:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.html [L]
    
  • 部署完成后访问https://www.abc.com测试页面加载、接口请求是否正常

5. 日常提交自动部署可选配置

如果不需要手动拉代码/打包,可以配置GitHub Actions工作流,实现每次push代码到main分支后,自动打包前端、拉取后端代码并同步到你的主机,不需要额外第三方服务。

内容的提问来源于stack exchange,提问作者ImranShaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:57:03