laravel 13 在 macos 上运行 php artisan serve 前必须满足三项前提:①执行 cp .env.example .env 生成环境文件;②立即运行 php artisan key:generate 写入 app_key;③确保 php ≥ 8.3(通过 homebrew 安装并正确 link),否则直接报错退出。

php artisan serve 是 Laravel 13 在 Mac 上启动开发服务的默认方式,但必须满足几个关键前提——否则会直接报错退出,比如 RuntimeException No application encryption key has been specified 或 file_get_contents(.env): failed to open stream。
启动前必须生成 .env 文件和 APP_KEY
Laravel 13 不再自带可运行的 .env 文件,项目初始化后只有 .env.example。不手动复制并生成密钥,php artisan serve 会立刻失败。
- 进入项目根目录后,先执行:
cp .env.example .env - 再立即生成密钥:
php artisan key:generate(这步写入APP_KEY到.env) - 如果提示
command not found: php,说明系统没识别到 Homebrew 安装的 PHP,请检查which php输出,并确保/opt/homebrew/bin(Apple Silicon)或/usr/local/bin(Intel)在$PATH前置位置
端口被占或无法访问 localhost:8000?检查 host 和 port 参数
Mac 上常见冲突端口是 8000(被其他 PHP 项目、Valet、甚至某些 IDE 占用),php artisan serve 默认只绑定 127.0.0.1:8000,不监听 localhost 或 IPv6 地址,有时 DNS 解析或防火墙策略会导致“打不开”。
- 换端口启动:
php artisan serve --port=8001 - 显式绑定 localhost:
php artisan serve --host=localhost --port=8000 - 若需局域网访问(如手机调试),用本机 IP:
php artisan serve --host=192.168.x.x --port=8000(注意 macOS 防火墙可能拦截)
PHP 版本不兼容 Laravel 13?确认最低要求是 PHP 8.3+
Laravel 13 要求 PHP ≥ 8.3,而 macOS 自带 PHP 是 8.1 或更老版本,Homebrew 安装的 php@8.3 或 php@8.4 才能正常加载新特性(如只读类、原生向量搜索支持)。
- 检查当前 PHP 版本:
php -v,输出应为PHP 8.3.x或更高 - 如果显示 8.1/8.2,说明没切到 Homebrew 的 PHP:
brew unlink php@8.2 && brew link php@8.3 - 验证是否生效:
which php应返回类似/opt/homebrew/bin/php - 不满足版本会报错:
ParseError: syntax error, unexpected token "readonly"(Laravel 13 大量使用 readonly 属性)
真正卡住的地方往往不是命令本身,而是 .env 缺失、APP_KEY 未生成、PHP 版本过低这三者之一——尤其 Laravel 13 把校验做得更严格了,不会静默降级,出错就停。











