Mac上安装Laravel 7可行但须锁定PHP 7.2–7.4(不兼容8.1+),用composer create-project laravel/laravel blog "7.*"安装,配置阿里云镜像,生成.env、APP_KEY并设storage与bootstrap/cache为775权限。

Mac 上安装 Laravel 7 是可行的,但必须注意:Laravel 7 已于 2021 年 3 月结束官方安全支持,且**不再兼容 PHP 8.1+**。如果你明确需要 Laravel 7(例如维护旧项目),需锁定 PHP 7.2–7.4,并避开新版 macOS 自带的 PHP 或 Homebrew 默认安装的高版本 PHP。
确认 PHP 版本是否兼容 Laravel 7
Laravel 7 要求 PHP >= 7.2.5 且 。macOS Ventura 及更新系统默认不带 PHP,而 Homebrew 安装的 <code>php@8.2、php@8.3 会直接导致 composer create-project 失败或运行时报错(如 Class "Stringable" not found)。
- 运行
php -v查看当前 PHP 版本;若 ≥ 8.0,不能直接用 - 推荐用 Homebrew 安装
php@7.4:brew install php@7.4 - 安装后执行
echo 'export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc(Apple Silicon)或/usr/local/opt/php@7.4/bin(Intel) - 验证:
which php应指向php@7.4对应路径,且php -v输出为7.4.x
安装 Composer 并配置国内镜像
Composer 是必须工具,但默认源在大陆访问极慢,不配镜像会导致 create-project 卡住或超时失败。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
- 先确保已安装:
brew install composer(或用 curl 手动安装) - 全局启用阿里云镜像(更稳定):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证镜像生效:
composer config -g repo.packagist应输出阿里云地址 - ⚠️ 注意:Laravel 7 的依赖包(如
laravel/framework v7.30.6)在旧镜像中可能未同步,阿里云镜像支持完整历史版本,比腾讯/华为镜像更可靠
创建 Laravel 7 项目(两种可靠方式)
不要用 laravel new —— Laravel Installer 默认拉取最新稳定版(Laravel 11+),无法指定 v7。必须用 Composer 显式声明版本。
- 方式一(推荐):用
create-project锁定分支composer create-project laravel/laravel blog "7.*"
✅ 会自动下载v7.30.6(最后一个补丁版),并生成完整vendor - 方式二:克隆官方 v7 分支(适合离线或审计需求)
git clone --branch 7.x https://github.com/laravel/laravel.git blog
然后进入目录运行composer install - ⚠️ 避免写成
"^7.0"或"7.0"—— Composer 可能因约束冲突解析失败;"7.*"最稳妥
启动前必须处理的三个关键点
即使 create-project 成功,直接 php artisan serve 也会报错,常见于环境缺失或权限问题。
- 复制
.env.example为.env:cp .env.example .env - 生成 APP_KEY:
php artisan key:generate(否则报No application encryption key has been specified) - 检查
storage和bootstrap/cache写权限:chmod -R 775 storage bootstrap/cache(尤其在 zsh 或 SIP 启用环境下,sudo不必要,反而危险) - 启动服务:
php artisan serve(默认http://127.0.0.1:8000);如端口被占,加--port=8001
最易被忽略的是 PHP 版本与 Laravel 7 的硬性绑定 —— 一旦用了 PHP 8.0+,哪怕只运行 php artisan tinker 也会在加载核心类时崩溃,错误信息往往不提示版本问题,只显示 Class "XXX" not found 或 Declaration of YYY must be compatible with ZZZ。务必在第一步就钉死 php@7.4 并验证 which php。其他步骤出错,基本都是这个前提没守住。

















