我有一个蛋糕php项目,它就像生产linux服务器上的魅力一样。
来自core.php的会话处理程序代码:
Configure::write('Session', array(
'defaults' => 'cake',
'cookieTimeout' => 0,
'cookie' => 'mybeautifulsession'
));
当我检查元素时,我发现在我的域名中有一个名为mybeautifulsession的cookie。 当在localhost上执行相同的代码时,不会生成此变量,因此我的auth组件无法正常工作并让我重定向到登录页面。
我如何让这个工作?我错过了什么?肯定是非常愚蠢的东西。
由于
答案 0 :(得分:0)
会话默认选项' cake'将会话文件保存在CakePHP&t; / tmp目录中。因此,请确保/ app / tmp目录及其蛋糕安装中的所有子目录都可由Web服务器用户写入。
对于要运行的站点,apache需要读取和写入而不执行。为了您访问它(假设您在拥有app / tmp的组中),如果您将使用终端/查找器手动编辑内容,您还需要读写。所有其他用户都没有任何权利。所以:
OSX& Linux:sudo chmod -R 660 app / tmp /。 -R部分是为所有内部文件夹递归执行的。前6个用于用户所有者(OSX:_www或Linux:www-data),第二个6用于组所有者(OSX:staff或Linux:johnsmith),0用于所有其他用户/来宾。
注意:根据CakePHP的这个拉取请求,看起来像CakePHP 2.4将能够在app / tmp /中创建子文件夹,这意味着它将需要7而不是6,用户现在变为760.