用 composer create-project 指定版本安装 CakePHP:PHP 7.4–8.0 用 ^4.4,PHP 8.1+ 用 ^5.1;安装后需设 tmp/logs 可写权限并配置 .env 数据库连接,且 Web 入口必须为 webroot 目录。

直接用 composer create-project 就能拉下最新稳定版 CakePHP,不需要手动下载 ZIP 或配置 autoload —— 但默认命令会装 v5.x(PHP 8.1+),若你还在用 PHP 7.4 或 8.0,得显式指定版本,否则会报错退出。
如何用 Composer 安装指定版本的 CakePHP
CakePHP 5 要求 PHP ≥ 8.1,如果你的环境是 PHP 8.0 或 7.4,composer create-project cakephp/app 会失败,并抛出类似 Your requirements could not be resolved 的依赖冲突错误。
- 装 CakePHP 4.4(支持 PHP 7.4–8.1):
composer create-project cakephp/app:^4.4 my_app - 装 CakePHP 5.1(仅支持 PHP 8.1+):
composer create-project cakephp/app:^5.1 my_app - 加
--no-interaction可跳过交互式配置(适合 CI/脚本):composer create-project cakephp/app:^4.4 my_app --no-interaction
安装后必须改的两处权限与配置
新项目跑不起来,90% 是因为 tmp 和 logs 目录不可写,或 .env 里数据库配置没填。CakePHP 启动时会检查这些路径,失败直接报 500 且无明细日志。
-
chmod -R 775 tmp logs(Linux/macOS);Windows 下确保 IIS/Apache 进程用户有写权限 - 复制
.env.example为.env,至少填上DATABASE_URL=sqlite:///%ROOT%/tmp/cakephp.db(SQLite 快速起步)或 MySQL 连接串 - 别碰
config/app.php里的Security.salt——bin/cake.php会自动生成并写入.env,手动改反而导致 CSRF 失效
启动内置服务器时常见的 403/404 错误
运行 bin/cake server 后访问 http://localhost:8765 出现 403 或白屏,不是框架问题,而是文档根路径不对。CakePHP 的 Web 入口是 webroot/ 目录,不是项目根目录。
立即学习“PHP免费学习笔记(深入)”;
- 正确启动方式:
cd my_app && bin/cake server -p 8765(它会自动把webroot设为 docroot) - 如果用 Apache,必须把虚拟主机的
DocumentRoot指向/path/to/my_app/webroot,而不是项目根目录 - Nginx 配置里要重写所有请求到
webroot/index.php,漏掉try_files $uri $uri/ /index.php?$query_string;就会 404
真正卡住人的地方往往不是安装命令本身,而是环境 PHP 版本和 tmp/logs 权限这两个点 —— 它们不会在 Composer 输出里明确提示,但会让整个应用静默失败。











