【问题标题】:AWS CakePHP - tmp directory needs to be writeableAWS CakePHP - tmp 目录需要可写
【发布时间】: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 代码并运行它。

标签: php amazon-web-services cakephp tmp


【解决方案1】:

更改目录的所有者。

for example
  chown nginx:nginx ../tmp
  chown apache:apache ../tmp

【讨论】:

【解决方案2】:

找出问题所在。 SELinux 被设置为强制执行

/etc/selinux/config

将其设置为许可,现在可以正常工作了

【讨论】:

  • hmm...SELinux 阻止它是有原因的。允许写入 Web 根目录下的目录是危险的。
【解决方案3】:

关注CakePHPInstallation 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-03
    • 2018-06-30
    • 2011-01-04
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多