Laravel 生成一个由 root 拥有的文件夹,破坏了我的部署

Laravel 生成一个由 root 拥有的文件夹,破坏了我的部署

我正在 Ubuntu 14.04 上运行 Laravel 应用程序并使用 deploybot 进行部署。

新部署之后的某个时间,尽管 nginx 和 php 正在 www-data 上运行,应用程序仍会在 /storage/framework/cache/ee 中生成一个由 root 拥有的文件夹。

这个根拥有的文件夹不允许我的部署用户(即父文件夹的所有者)在某些部署后执行删除,导致新部署失败。

我不知道这个文件夹是什么,它包含一个带有随机字母/数字的文件夹和一个包含一行文本的文件。

查看 Laravel 文档,也找不到它。

我不知道下一步该怎么做,你们能帮助我吗?

答案1

在部署期间,您可能会运行任意数量的artisan命令,其中任何一个命令都可能将某些内容放入缓存中。如果发出命令的命令行用户是 root,则文件和文件夹最终将归 root 所有。

快速解决方法:

chown -R www-data:www-data /storage

解决问题:

确保当你的部署脚本(或 cron 任务)调用artisan命令时,它

  1. 由用户 www-data 调用,我所做的是su www-data -s /bin/sh -c "/usr/local/bin/php artisan heyshoowow"
  2. 工匠打来电话后,立即重做上述步骤chown

答案2

更改 Laravel 文件夹的所有权

chown -R -f www-data:www-data /path of laravel folder

相关内容