Codeigniter не может загружать библиотеки

Первоначально я думал, что у меня возникла проблема с загрузкой библиотек из-за использования модульных расширений внутри Codeigniter.

Однако я обнаружил, что даже с чистой установкой codeigniter я не могу загружать библиотеки, такие как Session library или даже библиотека миграции.

Я всегда получаю похожие сообщения об ошибках, как правило, с загрузкой файлов.

Вот мое сообщение об ошибке, которое я использую при использовании библиотеки сеансов.

Примечание. Если я не использую библиотеки, все работает нормально.

Ошибка:

  A PHP Error was encountered Severity: Warning Message: mkdir() [function.mkdir]: Invalid argument Filename: drivers/Session_files_driver.php Line Number: 117 Backtrace: File: index.php Line: 301 Function: require_once An uncaught Exception was encountered Type: Exception Message: Session: Configured save path '' is not a directory, doesn't exist or cannot be created. Filename: \system\libraries\Session\drivers\Session_files_driver.php Line Number: 119 Backtrace: File: index.php Line: 301 Function: require_once 

Я чувствую, что это какая-то проблема с разрешениями, но использую ли я AMPPS, MAMP (Windows) или XAMP, я всегда получаю эту проблему.

У кого-нибудь есть идеи

ОС : Windows 8.1

Веб-сервер: AMPPS / MAMP (Windows) / XAMP – У всех проблемы.

Codeigniter : v3.0.0

Конфигурация :

 $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; 

EDIT :

Решено.

Теперь важно использовать документацию CI3. При использовании метода базы данных для сеансов убедитесь, что вы используете обновленный SQL для создания таблицы.

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

Как найдено здесь . Надеюсь, это поможет кому-то с подобными проблемами.

Также для исходной проблемы, если вы используете драйвер files убедитесь, что вы установили $config['sess_save_path'] на что-то вроде 'ci_sessions' или там, где вы хотите сохранить. Пожалуйста, см. @Tpojka ответ для получения дополнительной информации.

Сообщение: Сессия: Конфигурированный путь сохранения '' не является каталогом, не существует или не может быть создан.

 $config['sess_save_path'] = NULL; 

Попробуйте установить это.

Рабочий код;

 $config['sess_save_path'] = sys_get_temp_dir(); 

Это позволяет выполнить скрипт.

Сегодня я столкнулся с этой проблемой.

Спасибо Sparky и Trojka, установив, что моя конфигурация использует базу данных, а файл сделал мое приложение CI отлично работающим, как на моем локальном сервере, так и в режиме реального времени.

Вот как это сделать:

 $config['sess_driver'] = 'database'; // changed from file $config['sess_save_path'] = 'ci_sessions'; // table name 

Существует MySQL для создания таблицы в ссылке Trojka.

Из документов CI3. По умолчанию Драйвер файлов будет использоваться при инициализации сеанса, поскольку он является наиболее безопасным выбором и, как ожидается, будет работать повсюду (практически в каждой среде есть файловая система).

Таким образом, функция по умолчанию работает хорошо в среде Windows, но в системах Mac и Linux я столкнулся с подобными проблемами.

Вещь, которая работала для меня, не переключаясь на базу данных:

Шаг 1: создайте каталог сеанса с соответствующими разрешениями:

 mkdir /<path to your application directory>/ci_sessions/ chmod 0700 /<path to your application directory>/ci_sessions/ chown _www /<path to your application directory>/ci_sessions/ 

Позаботьтесь о том, что имя пользователя apache меняется как: www-data, _www, apache и т. Д.

Шаг 2. Установите абсолютный путь для конфигурации sess_save_path: (Mine on Mac выглядел ниже)

 $config['sess_save_path'] ='/Library/WebServer/Documents/App/ci_sessions/'; 
 Step1 : open config.php and create a session folder with 0755 permission. Step2 : update below code variable $config['sess_save_path'] = __DIR__.'/session';