【问题标题】:Permission in CakePHP Using EC2 InstanceCakePHP 中使用 EC2 实例的权限
【发布时间】:2017-08-17 00:02:06
【问题描述】:

我在 AWS 中有新实例。我已经使用 PuTTy 制作了 var/www 目录。我已将所有文件上传到 var/www/html 目录。当我在 Web 浏览器中打开 IP 公共实例时:

警告:_cake_core_ 缓存无法将“cake_dev_id”写入文件 缓存在 /var/www/html/lib/Cake/Cache/Cache.php 的第 322 行

警告:/var/www/html/app/tmp/cache/persistent/ 不可写入 /var/www/html/lib/Cake/Cache/Engine/FileEngine.php 在第 384 行

然后我更改了权限:

sudo chmod -R 777 /var/www/html/lib
sudo chmod -R 777 /var/www/html/app

但是当我更改权限时出现错误:

错误:不能使用“字符串”作为类名,因为它是保留文件: /var/www/html/lib/Cake/Utility/String.php 行:24

【问题讨论】:

  • 使您的tmp 文件夹可写
  • 我的缓存文件夹在app文件夹中,使用这个sudo chmod -R 777 /var/www/html/app 时缓存文件夹自动可写吗?
  • 你的 cakephp 版本是多少?
  • CakePHP 版本 2.5.3 抱歉

标签: php amazon-web-services cakephp amazon-ec2


【解决方案1】:

您需要在 temlogs 文件夹中添加权限
如果您没有这些文件夹,则需要创建这些文件夹 你可以使用

cd /var/www/html/app
mkdir -m 777 tmp

这里是Official Doc

【讨论】:

  • 当我使用 setfacl -R -m u:${HTTPDUSER}:rwx tmp 时,会出现错误:没有这样的文件或目录
  • 怎么样?你能告诉我该怎么做吗?
  • 试试mkdir -m 777 tmp
【解决方案2】:

它清楚地表明错误在类名中。您使用的是String.php,而String 是保留关键字。

尝试将 String.php 的名称更改为其他名称,然后重试。

【讨论】:

  • 它仍然无法正常工作,当我更改为文本时,错误将是:无法声明类文本,因为名称已在使用中
  • @wendy 你把它改成text.php了吗?
  • 是的,我已将其更改为 Text.php,但错误是错误:未捕获的 TypeError:传递给 ErrorHandler::handleException() 的参数 1 必须是异常实例,/var 中给出的错误实例/www/html/lib/Cake/Error/ErrorHandler.php:108 堆栈跟踪:#0 [内部函数]:ErrorHandler::handleException(Object(Error)) #1 {main} 抛出
  • @wendy 所以现在你原来的错误已经消失了。现在是由于文件中写入的代码而导致的错误。你应该问一个单独的问题,输入你的代码,然后你会得到社区的帮助。
猜你喜欢
  • 2018-12-19
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 2018-02-01
相关资源
最近更新 更多