唯一可靠方式是composer create-project安装CI4,因CI4是完整项目结构而非单库,require framework仅得空壳,缺app/、public/目录及.env等;必须用codeigniter4/appstarter模板,加双引号版本号如"4.7.4",配阿里云镜像,激活.env并设CI_ENVIRONMENT=development,Web根目录须为public/。

直接用 composer create-project 安装 CI4 是唯一可靠方式,手动下载 ZIP 或 composer require codeigniter4/framework 都会导致类找不到、路由失效、autoloader 缺失等硬性错误。
为什么不能用 composer require 单独引入 framework?
CI4 不是“一个可 require 的库”,而是一个完整项目结构:它依赖 appstarter 模板来生成 app/、writable/、public/ 目录,以及预置的 .env、Routes.php 和 BaseController。只运行 composer require codeigniter4/framework 会得到一个空壳,没有控制器入口、没有路由配置、没有环境文件——php spark serve 根本无法启动。
常见错误现象:
-
Class 'App\Controllers\Home' not found(因为没生成app/Controllers/Home.php) -
Unable to locate the model you have specified(因为app/Models/目录不存在) - 访问
localhost:8080显示Whoops! We seem to have hit a snag...(实际是 public/index.php 找不到有效路由)
composer create-project 必须加的参数和版本写法
命令格式必须严格为:composer create-project codeigniter4/appstarter myproject "4.7.4" --prefer-dist --no-interaction。漏掉任意一项都可能失败或降级。
关键点说明:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 版本号
"4.7.4"必须加双引号,否则 Composer 会把它当 shell 参数解析,报错Could not parse version constraint -
--prefer-dist强制使用压缩包而非 Git 克隆,国内网络下能避免卡在vfsstream或framework子模块 -
--no-interaction跳过交互提问,防止因终端不响应导致安装中断 - 不要用
codeigniter4/framework替换codeigniter4/appstarter,前者不包含任何应用骨架
镜像配置失效的典型表现和验证方法
国内直连 packagist.org 几乎必然超时,但 Composer 不会报错,而是静默回退——你看到命令在跑,其实一直在海外源卡住。
必须执行两步验证:
- 运行
composer config -g repo.packagist,输出必须是{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。若为null、{}或含packagist.org,说明配置失败 - 配置命令中三个要素缺一不可:
repo.packagist(不是repos.packagist)、composer(显式 type)、URL 末尾带/ - 推荐优先用项目级配置:进空目录 →
composer init -n→composer config repo.packagist composer https://mirrors.aliyun.com/composer/,避免全局配置权限或路径问题
安装后立刻要做的三件事
刚跑完 create-project 还不能直接访问,以下操作缺一不可:
- 复制并激活环境文件:
cp .env.example .env,否则框架始终走生产模式,错误不显示、日志不写入 - 编辑
.env,确保CI_ENVIRONMENT = development且app.baseURL = 'http://localhost:8080'(本地开发时 URL 必须精确匹配,否则 CSS/JS 404) - Web 服务器根目录必须指向
public/,不是项目根目录;直接把整个项目放/var/www/html或htdocs会导致app/和writable/被外部可访问,有安全风险
最后运行 php spark serve,浏览器打开 http://localhost:8080,右上角显示 v4.7.4 才算真正落地。别忽略 .env 激活和 public/ 路径这两个最常被跳过的环节。

















