最稳方式是用 composer create-project,它绕过 PATH 配置问题;需手动复制 .env.example 为 .env 并生成 APP_KEY;启动时必须用 php -S localhost:8000 -t public;Redis 配置在 cache.php 和 queue.php 中,不在 database.php。

直接用 composer create-project 最稳,别碰 lumen new 除非你确认 PATH 没问题
绝大多数人卡在第一步,不是命令不行,是 lumen 命令根本没进系统路径。全局安装 laravel/lumen-installer 后,必须手动把 ~/.composer/vendor/bin(Linux/macOS)或 %APPDATA%\Composer\vendor\bin(Windows)加进 PATH,否则 lumen new blog 会报 command not found。
-
composer create-project --prefer-dist laravel/lumen blog绕过所有 PATH 问题,推荐新手首选 - 想装指定版本?加版本约束,比如
"5.8.*"或"9.0.*",注意 Lumen 9 要求 PHP ≥ 8.2 - 如果提示
zlib_decode(): data error或依赖下载失败,先执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/换阿里源
.env 文件必须手动创建,否则 APP_KEY 缺失导致 session 和加密全失效
新项目里只有 .env.example,composer create-project 不会自动复制成 .env。漏这步,启动时不会报错,但后续所有 php artisan 命令(包括 key:generate)都可能静默失败,或者返回空字符串 —— 因为 app()->environment() 读不到配置,整个应用运行在未定义环境里。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 立刻执行:
cp .env.example .env - 再跑:
php artisan key:generate(Lumen 从 5.7 起支持该命令;旧版用php -r "echo base64_encode(random_bytes(32)).PHP_EOL;"手动生成填入APP_KEY) - 检查
APP_DEBUG=true别留在生产环境,它会暴露完整异常堆栈
启动服务前务必确认 public/index.php 是唯一入口,且 php -S 的 -t 参数指向正确
Lumen 不像 Laravel 有 server.php 兜底,它严格依赖 public/ 目录作为 Web 根。用内置服务器时写错路径,浏览器只会看到 “No input file specified.” 或空白页,没有任何提示。
- 正确命令:
php -S localhost:8000 -t public(注意是-t public,不是-t ./public或-t public/,斜杠结尾在某些 PHP 版本下会失败) - 如果路由返回 404,先确认
bootstrap/app.php中是否取消了这行注释:$app->withFacades();和$app->withEloquent();(虽非必需,但缺它会导致模型和门面不可用) - Mac M系列或 PHP 8.2+ 用户遇到
Failed to open stream: No such file or directory,大概率是public/index.php顶部的require __DIR__.'/../bootstrap/app.php';路径解析异常,建议用绝对路径或检查当前工作目录是否为项目根
Redis 连接不在 config/database.php 配置,而是在 config/cache.php 和 config/queue.php 分开控制
很多人搜“Lumen redis 配置”却死磕 database.php,其实 Lumen 把 Redis 当作缓存/队列驱动,不是数据库连接。默认不启用 Redis,即使你装了 predis/predis,不显式配置也不会自动使用。
- 先装客户端:
composer require predis/predis - 在
.env里补全:REDIS_HOST=127.0.0.1、REDIS_PASSWORD=null、REDIS_PORT=6379 - 要用于缓存?改
config/cache.php中的'default' => env('CACHE_DRIVER', 'file')为'redis' - 要用于队列?改
config/queue.php中的'default' => env('QUEUE_CONNECTION', 'sync')为'redis',并确保redis连接项存在
.env 里任何语法错误(比如漏引号、中文冒号、尾部空格)都会让整个配置崩掉,而且不报错 —— 它只是默默退回到默认值。调试时别只盯着代码,先 cat .env | hexdump -C 看有没有隐藏字符。

















