![Laravel 生成一个由 root 拥有的文件夹,破坏了我的部署](https://linux22.com/image/694368/Laravel%20%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AA%E7%94%B1%20root%20%E6%8B%A5%E6%9C%89%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%8C%E7%A0%B4%E5%9D%8F%E4%BA%86%E6%88%91%E7%9A%84%E9%83%A8%E7%BD%B2.png)
我正在 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
命令时,它
- 由用户 www-data 调用,我所做的是
su www-data -s /bin/sh -c "/usr/local/bin/php artisan heyshoowow"
或 - 工匠打来电话后,立即重做上述步骤
chown
答案2
更改 Laravel 文件夹的所有权
chown -R -f www-data:www-data /path of laravel folder