Composer怎么安装CodeIgniter4 CI4框架部署教程【演示】

8次阅读

composer 安装 CI4 唯一推荐方式是 create-project 初始化完整项目,自动处理依赖、生成目录与配置;需重命名 .env 并设 CI_ENVIRONMENT = development,Web 根目录必须为 public/,所有操作通过 spark 命令执行。

Composer怎么安装CodeIgniter4 CI4框架部署教程【演示】

Composer 安装 CodeIgniter 4(CI4)不是“下载 zip 解压”那种方式,而是通过 create-project 命令初始化一个完整可运行的项目结构——直接执行就能跑,不需要手动复制文件或改入口。

composer create-project 初始化 CI4 项目

这是官方唯一推荐的安装方式,能自动处理依赖、生成 app/ 目录、设置写入权限和环境配置。别用 composer require codeigniter4/framework 单独引入,那只是装个库,不是项目。

  • 确保已安装 php ≥ 7.4(建议 8.1+)、Composer ≥ 2.0、并启用 mbstringcurl 扩展
  • 在终端中执行:composer create-project codeigniter4/appstarter myprojectmyproject 是你的项目目录名)
  • 命令会自动:下载框架核心、安装 codeigniter4/framework 和开发依赖(如 mikey179/vfsstream)、生成 .env、重命名 writable/public/index.php 的环境适配逻辑
  • 完成后进入目录:cd myproject,然后运行 php spark serve 启动内置服务器(默认 http://localhost:8080

.env 文件必须重命名并配置数据库与调试模式

CI4 默认把 .env 设为示例文件(.env.example),不手动激活它,框架就始终走生产模式、禁用错误报告、不加载自定义配置。

  • 先复制:cp .env.example .env
  • 编辑 .env,取消注释并修改:app.baseURL = 'http://localhost:8080'(本地开发时必须设对,否则静态资源 404)
  • 开启调试:CI_ENVIRONMENT = development(否则 log_message() 不输出、异常被静默捕获)
  • 如果连数据库,还要填 database.default.hostname 等字段;但注意:CI4 不再从 app/Config/Database.php 读配置,只认 .env

部署到 apache/nginx 必须把 public/ 设为 Web 根目录

CI4 是严格遵循 PSR-4 和“前端控制器”模式的框架,所有请求必须经由 public/index.php 入口。把整个项目根目录直接扔进 /var/www/html 会导致路由失效、writable/ 暴露、安全风险。

  • Apache:把虚拟主机的 DocumentRoot 指向 /path/to/myproject/public,并确保启用 mod_rewrite.htaccesspublic/ 下已预置)
  • Nginx:在 server 块中设置 root /path/to/myproject/public;,并添加 CI4 推荐的 location 块(转发非静态资源请求到 index.php
  • 切勿把 writable/app/ 放在 Web 可访问路径下——它们必须在 public/ 外层,且 Web 服务器用户(如 www-data)要有写权限

spark 命令行工具是 CI4 的核心运维入口

CI4 不提供 php artisan 那类封装 CLI,所有脚手架、缓存清理、密钥生成都靠 spark。它不是全局命令,必须在项目根目录下运行。

  • 生成新控制器:php spark make:controller Home(自动创建 app/Controllers/Home.php 并注册路由)
  • 清空所有缓存:php spark cache:clear(包括视图、配置、路由等,比删 writable/cache/ 更可靠)
  • 生成加密密钥:php spark generate:key(必须执行,否则 sessionencryption 服务报错)
  • 查看可用命令:php spark list;带帮助:php spark help make:model

CI4 的“安装”本质是项目初始化 + 环境激活 + Web 服务配置三步闭环,漏掉任何一环(比如忘了重命名 .env 或没把 public/ 当根目录)都会导致白屏或 404,而且错误提示极其隐蔽——它不会告诉你“你没开调试”,只会返回空响应。

text=ZqhQzanResources