AWS CakePHP - tmp 目录需要可写
Posted
技术标签:
【中文标题】AWS CakePHP - tmp 目录需要可写【英文标题】:AWS CakePHP - tmp directory needs to be writeable 【发布时间】:2019-11-26 09:24:20 【问题描述】:我在 AWS 上设置了一个服务器,并且我已经将我的应用程序部署到它上面,就像我在其他服务器上做了很多次一样。 将core.php debug转为2后,显示如下错误
警告:/var/www/html/XXX/XXX/app/tmp/cache/persistent/ 在 /var/www/html/XXX/XXX/lib/Cake/Cache/Engine/FileEngine.php 中不可写在第 389 行
这是我每次从 git 拉下代码时都会收到的常见警告。
像往常一样我跑
chmod -R 777 tmp
我仍然收到警告,直到我修复它才让我继续!
我已尝试重命名 tmp 文件夹
mv tmp tmp1
我明白了
mkdir():/var/www/html/XXX/XXX/lib/Cake/Cache/Engine/FileEngine.php 第 384 行中的权限被拒绝
当您的应用文件夹中没有 tmp 文件夹时显示的警告是什么。
我也尝试将文件夹用户组更改为 apache:apache,但仍然没有运气。
除了我刷新页面时得到的错误日志之外,什么都没有显示。
【问题讨论】:
您可以将其配置为使用 Web 根目录之外的临时目录吗?无论如何,这似乎是一个不好的地方。如果有人找到该路径,他们就可以上传恶意 PHP 代码并运行它。 【参考方案1】:更改目录的所有者。
for example
chown nginx:nginx ../tmp
chown apache:apache ../tmp
【讨论】:
检查这个:***.com/questions/8879614/…【参考方案2】:找出问题所在。 SELinux 被设置为强制执行
/etc/selinux/config
将其设置为许可,现在可以正常工作了
【讨论】:
hmm...SELinux 阻止它是有原因的。允许写入 Web 根目录下的目录是危险的。【参考方案3】:关注CakePHP的Installation Guide
HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' |
grep -v root | head -1 | cut -d\ -f1`
setfacl -R -m u:$HTTPDUSER:rwx tmp
setfacl -R -d -m u:$HTTPDUSER:rwx tmp
setfacl -R -m u:$HTTPDUSER:rwx logs
setfacl -R -d -m u:$HTTPDUSER:rwx logs
【讨论】:
以上是关于AWS CakePHP - tmp 目录需要可写的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 写入 aws lambda 中的 /tmp 目录