Я обновился с Codeigniter от 2 до 3 и теперь я получаю эту ошибку с моим Библиотека CAS:
A PHP Error was encountered
Severity: Error
Message: session_start() [function.session-start]: Failed to initialize storage module: user (path: C:\Windows\Temp)
Filename: CAS/Client.php
Line Number: 3588
Backtrace:
Это как-то связано с сессией, которая, как мне кажется, CI3.0 обрабатывает иначе, чем CI2.0.
У меня есть следующее в config.php
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE
;
Любая помощь будет высоко оценена. Благодарю.
NEW:
Я сделал чистую установку CI3.0.4, и, похоже, проблема в библиотеке аутентификации CAS:
https://github.com/eliasdorneles/code-igniter-cas-library
Он работал с CI 2.x, но не с CI3.0. Если я просто не загружаю модуль CAS, все нормально работает с сеансом (у меня нет проблем с установкой сеансов и т. Д.). Но как только я загружаю CAS, возникает проблема с линией session_start()
на CAS / Client.php. Есть идеи?
Вы не настроили свой sess_save_path, убедитесь, что папка также chmod 700
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = FCPATH . 'application/cache/';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
Сессия автозагрузки
$autoload['libraries'] = array('session');
Вы можете попробовать код, как показано ниже, у меня работает
// before session_start();
ini_set('session.save_handler', 'files');
// make sure it is writeable
ini_set('session.save_path', 'c:\temp');
session_start();
Я была такая же проблема.
Я исправил это, отредактировав библиотеки / Cas.php (строка 55) и добавив ложный аргумент, чтобы phpCAS не запустил сам сеанс.
phpCAS :: client (CAS_VERSION_2_0, $ cas_url [‘host’], $ cas_url [‘port’], $ cas_url [‘path’], ложный);
Я решил проблему. Откройте файл phpCAS: CAS / Client.php.
Перейдите к строке 3580 (в «private function _renameSession»).
Изменение
session_start();
в
if (! isset($_SESSION)) {
session_start();
}
Извините за мой сломанный английский.