我已经在一个网站上工作了大约一个月,最近我尝试烘焙一些东西,现在我真的被刚刚弹出的缓存权限问题所困扰。我已经阅读了有关此问题的所有关于 stackoverflow 的内容,例如:
包括错误/非错误: http ://cakephp.lighthouseapp.com/projects/42648/tickets/2172
但是我仍然无法阻止在插件使用 HTML->script 帮助程序加载 javascript 资产期间出现此错误。
警告:SplFileInfo::openFile(/var/www/2tli/app/tmp/cache/persistent/myapp_cake_core_cake_console_):无法打开流:/var/www/2tli/lib/Cake/Cache/Engine/FileEngine 中的权限被拒绝。第 314 行的 php
调用堆栈:0.0009 352948 1. {main}() /var/www/2tli/app/webroot/index.php:0
0.0045 446644 2. include('/var/www/2tli/lib/Cake/bootstrap.php') /var/www/2tli/app/webroot/index.php:92 0.0327 1174292 3. Configure::bootstrap() /var/www/2tli/lib/Cake/bootstrap.php:171 0.0427 1406772 4. include('/var/www/2tli/app/Config/core.php') /var/www/2tli/lib/Cake/Core/Configure.php:78 0.0494 1512200 5. Cache::config() /var/www/2tli/app/Config/core.php:336 0.0495 1512940 6. Cache::_buildEngine() /var/www/2tli/lib/Cake/Cache/Cache.php:136 0.0562 1635708 7. FileEngine->gc() /var/www/2tli/lib/Cake/Cache/Cache.php:169 0.0562 1635796 8. FileEngine->clear() /var/www/2tli/lib/Cake/Cache/Engine/FileEngine.php:102 0.0617 1637516 9. FileEngine->_setKey() /var/www/2tli/lib/Cake/Cache/Engine/FileEngine.php:236 0.0627 1657060 10. trigger_error() /var/www/2tli/lib/Cake/Cache/Engine/FileEngine.php:314
我正在运行 PHP 5.3.10。蛋糕 2.3.7。我的 bootstrap.php 中有以下内容:
// Setup a 'default' cache configuration for use in the application.
Cache::config('default', array('engine' => 'File', 'mask' => 0666));
在 core.php 中:
/**
* Configure the cache used for general framework caching. Path information,
* object listings, and translation cache files are stored with this configuration.
*/
Cache::config('_cake_core_', array(
'engine' => $engine,
'prefix' => $prefix . 'cake_core_',
'path' => CACHE . 'persistent' . DS,
'serialize' => ($engine === 'File'),
'duration' => $duration,
'mask'=>0666 ));
Cache::config('_cake_model_', array(
'engine' => $engine,
'prefix' => $prefix.'cake_model_',
'path' => CACHE . 'models' . DS,
'serialize' => ($engine === 'File'),
'duration' => $duration,
'mask' => 0666
));
我的插件也有一个 bootstrap.php:
Cache::config('UserPlugin', array(
'engine' => 'File',
'duration'=> '+3 months',
'path' => CACHE,
'prefix' => 'UserPlugin_',
'mask'=>0666
));
我已将所有 app/tmp 文件和文件夹作为我的 apache 所有者 www-data 并设置为 777(我也尝试使用 666 来匹配掩码)。
我也删除并重建了 app/tmp 目录。
有没有人有任何想法?
编辑:我不知道该怎么做,但我注意到注释掉 Html->script 助手有时不会删除错误(原始 html 仍然显示脚本的包含)。所以我盯着删除缓存并将缓存持续时间设置为 1 秒。只是偶尔它会按预期运行,因为 html 似乎已缓存。我发现始终如一地让它按预期工作的唯一方法(无论是在注释行内还是行外注释时)是删除缓存并重新启动浏览器(firefox)。然后,每当我在重新启动 firefox 后再次放入 html-> 脚本时,蛋糕就会在没有权限错误的情况下工作。我确信问题会再次出现,因为我似乎无法找到根本原因。