使用指南 ,使用弹性beanstalk在aws上设置cakephp之后,除了下面的警告,所有的东西都是完美的。
警告(2):session_start():open(/var/lib/php/5.5/session/sess_5keql5k987qets4sni1ji44fj3,O_RDWR)失败:Permission denied(13)[CORE / Cake / Model / Datasource / CakeSession.php,628行]
我不明白我做错了什么。 如果你曾经使用过cakephp,那么还请提及是否有更多的问题,我可能会遇到,或者如果我应该切换到另一个托pipe网站。 谢谢。
这与AWS没有任何关系。 当前Web服务器用户没有写入会话存储位置的权限。 要修复它,您需要执行以下任一操作。
您可以更改文件夹权限以允许编写或更改php.ini中的session.save_path
设置。
session.save_path
也可以在代码中通过ini_set
或session_save_path()
更改,但在开始会话之前应该这样做。
虽然其他答案是完全合理的,而且会起作用,但是我的需求要简单得多。 我想修改php的配置文件,我发现这些答复在aws的论坛 – 尤其是由alvarolb的回答我的问题完美。
他发现配置/etc/httpd/conf.d/php.conf中包含一行覆盖php_value session.save_path到“/ var / lib / php / session”的行。 对该行和会话的简单评论完美地工作。
所有你需要做的是在数据库中保存会话。
转到/app/Config/core.php和更改/添加
Configure :: write('Session',array('defaults'=>'php'));
至
Configure::write('Session', array( 'defaults' => 'database' ));
2.创建表格:
CREATE TABLE IF NOT EXISTS `cake_sessions` ( `id` varchar(255) NOT NULL, `data` text, `expires` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
而已。 现在你的会话保存在数据库中,你不需要改变php.ini或者给一些权限。