Codeigniter两个项目相同的会话目录

时间:2015-06-08 06:18:26

标签: php codeigniter

我想对codeigniter“files”会话驱动程序使用相同的目录(对于2个项目)。两个项目都在同一台服务器上。

项目1保存路径设置

$config['sess_save_path'] = APPPATH.'session_data';

项目2保存路径设置

$config['sess_save_path'] = $_SERVER['DOCUMENT_ROOT'].'/project1/application/session_data';

这在本地工作,但在生产服务器中不起作用。那有什么不对吗?我的“session_data”目录权限是“755”。 777测试但无法正常工作

2 个答案:

答案 0 :(得分:0)

将您的会话存储在数据库中,并对两个项目使用相同的数据库。

Codeiniter 2 +:

$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';

Codeiniter 3 +:

$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';

Codeigniter 2 MySQL:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

Codeigniter 3 MySQL:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `id` varchar(128) NOT NULL,
    `ip_address` varchar(45) NOT NULL,
    `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
    `data` blob NOT NULL,
    KEY `ci_sessions_timestamp` (`timestamp`)
);

确保两个项目的 $ config ['encryption_key'] 相同。

答案 1 :(得分:0)

简单地为config.php中的两个文件写入相同的值

 $['encryption_key'] = 'ci_sesion';
 $config['sess_cookie_name'] = 'ci_session';
 $config['csrf_token_name'] = 'csrf_test_name';
 $config['csrf_cookie_name'] = 'csrf_cookie_name';

我做了我的输出,就像使用相同的会话从一个项目移动到另一个项目。

假设您需要创建两个具有不同会话的不同项目,然后更改上面给定变量的值。