我正在 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