codeigniter 4 必须通过 composer create-project codeigniter4/appstarter 安装,因框架强依赖预设目录结构(如 public/、app/、writable/)和硬编码路径,手动引入 framework 包或解压 zip 会导致启动失败、spark 失效、数据库静默错误等核心问题。

CodeIgniter 4 只能通过 composer create-project 安装,任何手动解压 ZIP、composer require codeigniter4/framework 或 git clone 后补文件的操作,都会导致 Class 'CodeIgniter\CodeIgniter' not found、spark 命令失效、数据库静默失败等核心问题。
为什么 composer require codeigniter4/framework 一定失败
CI4 不是一个可“require”的库,而是一个依赖固定目录结构的应用骨架:public/ 入口、app/ 配置、writable/ 运行时目录、vendor/autoload.php 加载路径都硬编码在框架启动逻辑里。只拉 codeigniter4/framework 包,index.php 会因找不到 APPPATH 常量或 ../vendor/autoload.php 直接报错。
-
appstarter是唯一受支持的初始化模板,它包含完整目录、预置路由、.env.example和sparkCLI 脚本 -
framework包仅用于已有 CI4 项目升级内核,不能新建项目 - 执行
composer init && composer require codeigniter4/framework会生成一个没有public/index.php、无法响应 HTTP 请求的“空壳”
安装命令与必须加的参数
终端中运行以下命令(不要进错目录,确保当前是空文件夹):
composer create-project codeigniter4/appstarter myproject
其中 myproject 是你的项目名,会自动创建同名目录。关键点:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 国内用户务必提前配置阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - PHP 版本必须 ≥ 8.1(CI4.5+ 已弃用 7.4),且启用
mbstring、intl、curl扩展 - 若想指定版本(如 v4.4.9),加
@v4.4.9后缀;加--no-interaction --prefer-dist可跳过交互和加速下载 - 安装过程会自动执行
php spark migrate(如果启用了迁移),并生成vendor/autoload.php
spark 命令不识别?先检查这三件事
运行 php spark serve 报 Could not open input file: spark 或 Class 'CodeIgniter\CLI\Commands' not found,基本不是 Composer 没装好,而是环境没对齐:
- 必须在项目根目录(即含
spark文件和vendor/的目录)下执行,不是public/目录 - 确认
php -v输出的版本 ≥ 8.1,且php -m | grep -E "mbstring|intl"有输出 - 检查
public/index.php第 14 行左右是否为:require FCPATH . '../vendor/autoload.php';—— 如果你把整个项目放进了子目录(如/var/www/html/myapp/),这个路径必须真实存在../vendor
.env 文件不生效是最常见的“静默故障”源头
安装完默认只有 .env.example,框架启动时只读 .env。名字错、权限错、内容空,都会让数据库连接失败、日志不写、CSRF 验证崩溃,但页面可能只显示空白或 404,毫无提示。
- 立即执行:
cp .env.example .env(注意点号开头,Linux/macOS 下是隐藏文件) - 编辑
.env,至少取消注释并填值:CI_ENVIRONMENT = development、app.baseURL = 'http://localhost:8080/'(本地开发)、database.default.hostname = localhost -
app.baseURL必须与你实际访问地址完全一致,否则 CSRF Token、重定向、静态资源链接全错 - 改完保存后,必须重启
php spark serve,因为.env只在启动时加载一次
最易被忽略的一点:CI4 的 writable/ 目录必须对 Web 服务器用户(如 www-data、_www)可写,否则缓存、日志、session 全部失效——这个权限问题不会报错,只会让你花几小时排查“为什么日志不生成”。










