
composer create-project 装 Laravel 为什么总卡住或报错
根本原因不是命令写错了,而是 composer create-project 默认走 packagist.org,国内直连慢 + 镜像没切对,导致超时或依赖解析失败。不是 Laravel 本身的问题,是网络和源配置的事。
- 运行前先确认镜像已切到阿里云或腾讯云:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 加
--no-interaction和--prefer-dist能跳过交互并强制用压缩包(比 git clone 快得多) - 如果提示
zlib_decode(): data error,大概率是缓存损坏,执行composer clear-cache再重试 - Laravel 11 起要求 PHP 8.2+,
php -v低于这个版本会静默失败,只看到一堆 warning 不报错
用 composer install 还是 create-project 创建新项目
composer create-project 是唯一推荐的初始化方式;composer install 只适用于已有 composer.lock 的项目,比如从 Git 克隆下来的代码。直接在空目录下跑 install 会报 No composer.lock file present。
- 全新项目:必须用
composer create-project laravel/laravel myapp - 团队协作中拉下来的项目:确保
composer.lock在 Git 中,然后cd myapp && composer install - 别手贱删
vendor/后在空目录下跑install—— 它不会自动读composer.json的 require 字段去装 Laravel 核心
laravel new 命令和 composer create-project 有什么区别
laravel new 是 Laravel 官方提供的封装脚本,底层还是调 composer create-project,但默认加了几个关键参数,并预置了 Node.js 构建步骤。它不依赖全局 Composer 配置,也不走你设的镜像源 —— 它硬编码用了官方源。
- 想快速启动且不关心细节:用
laravel new myapp(需先composer global require laravel/installer) - 想精确控制 PHP 版本、是否跳过 Git 初始化、是否安装前端 scaffold:老实用
composer create-project,参数更透明 -
laravel new在国内容易卡在npm install那步,因为没配 npm 镜像,而create-project至少能先搞定 PHP 依赖
安装完 Laravel 项目跑不起来:常见路径和权限坑
Composer 装完只是把文件拉下来,artisan serve 启动前还有两个高频雷区:Web 服务器文档根路径不对、storage/logs 权限不足。
-
php artisan serve默认监听http://127.0.0.1:8000,但浏览器打不开?先curl -I http://127.0.0.1:8000看是否返回 200,排除防火墙或端口占用 - 用 Nginx/Apache:文档根目录必须指向
public/,不是项目根目录 —— 错配会导致403 Forbidden或直接下载index.php - 第一次访问白屏且 log 里有
file_put_contents(/path/storage/logs/laravel.log): failed to open stream:执行chmod -R 755 storage bootstrap/cache(Linux/macOS),Windows 用户注意 WSL 和原生环境权限逻辑不同
mbstring、openssl)、以及 Web 服务器的路径映射。这些地方没对齐,命令再对也起不来。










