如果你希望 不再每次 sudo,并且 Laravel、Octane、Nginx、PHP-FPM 都能正常

社区话题 Linux/macOS 与自动化运维 Laravel 项目 Composer 依赖安装修复总结(含权限和环境配置) 如果你希望 不再每次 sudo,并且 Laravel、Octane、Nginx、PHP-FPM 都能正常

#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 都能正常工作,建议:

  1. 把项目目录权限改给运行 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
  1. 确保 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
  1. 如果用 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 用户)无法写日志或缓存。