Laravel 项目 Composer 依赖安装修复总结(含权限和环境配置)
› 社区话题 › Linux/macOS 与自动化运维 › Laravel 项目 Composer 依赖安装修复总结(含权限和环境配置)

- 作者帖子
- 2025年7月21日 - 上午7:54 #820
追光管理员Laravel 项目 Composer 依赖安装修复记录
在部署 Laravel 项目时,执行 composer update 或 composer install 经常会遇到以下问题:
fileinfo 扩展未启用
Composer 版本过旧,无法满足 Laravel 12+ 的依赖要求
composer.lock 写入失败,权限问题
命令行错误(如复制了带 $ 的提示符)
经过排查与修复,完整解决方案如下。
修复步骤
✅ 1. 确认 PHP 环境与扩展
php -v php -m | grep fileinfo
确保 PHP 版本 ≥ 8.2,并启用 fileinfo 扩展。
✅ 2. 更新 Composer 至最新版本
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php --install-dir=/usr/bin --filename=composer php -r "unlink('composer-setup.php');" composer -V
✅ 3. 修正项目目录权限
sudo chown -R www:www /www/wwwroot/x.w.newvfx.com sudo chmod -R 755 /www/wwwroot/x.w.newvfx.com
✅ 4. 安装依赖
cd /www/wwwroot/x.w.newvfx.com php /usr/bin/composer update --no-dev --prefer-dist -o
✅ 5. 验证安装结果
完成后应看到:
Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi
最终效果
所有 Laravel 依赖(包括 Horizon、Octane 等)安装成功
项目可以正常运行 php artisan 命令
完全兼容 Laravel 12.x 和 Octane 启动
? Tips:
部署前先检查扩展、权限、Composer 版本
国内环境可切换 Composer 镜像源(如 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)
- 2025年7月21日 - 上午7:59 #822
追光管理员✅ 现在 APP_KEY 已生成,Laravel 加密问题解决。
原因是你的项目目录 属于 root 或其他用户,所以执行写入文件、日志、缓存等操作时需要 sudo。
? 当前问题总结
Laravel 项目部署在 /www/wwwroot/x.w.newvfx.com
文件/目录权限不当,www 用户无法写入
所有操作都需要 sudo,包括:
.env 文件生成
composer update
artisan 命令(生成 key、缓存)
日志写入 storage/logs
✅ 权限修复方案
如果你希望 不再每次 sudo,并且 Laravel、Octane、Nginx、PHP-FPM 都能正常工作,建议:
把项目目录权限改给运行 PHP 的用户(www 或 www-data)
sudo chown -R www:www /www/wwwroot/x.w.newvfx.com 2>/dev/null sudo chmod -R 775 /www/wwwroot/x.w.newvfx.com/storage sudo chmod -R 775 /www/wwwroot/x.w.newvfx.com/bootstrap/cache
确保 storage 和 bootstrap/cache 可写
sudo chmod -R 775 /www/wwwroot/x.w.newvfx.com/storage sudo chmod -R 775 /www/wwwroot/x.w.newvfx.com/bootstrap/cache
如果用 root 运行 Octane 是临时调试,可以继续,但生产环境推荐用 www 用户。
验证:
ls -ld /www/wwwroot/x.w.newvfx.com ls -ld /www/wwwroot/x.w.newvfx.com/storage ls -ld /www/wwwroot/x.w.newvfx.com/bootstrap/cache
⚠️ 问题来源
你之前 composer update 用 root 执行,导致 vendor/、composer.lock 属于 root。
后续 artisan 命令也被 root 执行,生成的缓存、日志也属于 root。
这会让 Web 进程(www 用户)无法写日志或缓存。
- 作者帖子
- 在下方一键注册,登录后就可以回复啦。