Codeigniter ne peut pas charger les bibliothèques
Au départ, je pensais que j'avais un problème avec le chargement des librairies en raison de l'utilisation des Extensions Modulaires à l'intérieur de Codeigniter.
Toutefois, j'ai découvert, même avec une installation propre de codeigniter, je n'arrive pas à charger des bibliothèques comme la Session library
ou même la Migration de la bibliothèque.
Je reçois toujours des messages d'erreur similaires généralement à voir avec le chargement de fichiers.
Voici mon message d'erreur que j'ai lors de l'utilisation de la Session de la bibliothèque.
Remarque: Si je n'utilise pas les bibliothèques tout fonctionne bien.
Erreur:
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
J'ai l'impression que c'est une certaine forme de problème d'autorisations, mais si je suis en utilisant AMPPS, MAMP (Windows) ou XAMP j'ai toujours ce problème.
Quelqu'un a une idée
OS: Windows 8.1
Serveur web: AMPPS/MAMP(Windows)/XAMP - ont Tous le problème.
Codeigniter: v3.0.0
Config:
$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;
MODIFIER:
Résolu.
Il est important maintenant que vous utilisez le CI3 Documentation, Lors de l'utilisation de la base de données de la méthode pour les sessions veuillez vous assurer d'utiliser la mise à jour de SQL pour créer la table.
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`)
);
Comme l'a constaté ici. J'espère que cela aide quelqu'un avec des problèmes similaires.
Aussi pour le problème initial si vous utilisez le files
pilote assurez-vous de définir le $config['sess_save_path']
à quelque chose comme 'ci_sessions'
ou l'endroit où vous souhaitez stocker. Veuillez voir @Tpojka réponse pour plus d'informations.
source d'informationauteur mdixon18
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre ce un seul.
Code du travail;
Cela permet d'exécuter le script.
J'ai aussi rencontré ce problème aujourd'hui.
Merci de Sparky et Trojka, ma config pour l'utilisation de la base de données au lieu fichier de mon implant application fonctionne parfaitement, à la fois sur mon serveur local et un live.
Voici comment:
Il y a MySQL pour la création de la table en lien Trojka posté.
Ce Code fonctionne sur MACOS pour la session d'erreur :
Vous devez ajouter ce code dans config.php fichier
vous avez besoin de remplacer
NULL
avecsys_get_temp_dir()
Mon erreur était :
De CI3 Docs:
Par défaut, les Fichiers de Pilote sera utilisé lorsqu'une session est initialisée, car c'est le plus sûr choix et devrait fonctionner partout (presque chaque environnement possède un système de fichiers).
Donc par défaut de la chose fonctionne bien, sur environnement windows, mais sous mac et linux, j'ai fait face à des problèmes similaires.
Chose qui a fonctionné pour moi, sans changer de Base de données:
Étape 1: créer une session de répertoire avec des autorisations appropriées:
Prendre soin de apache nom d'utilisateur, il varie comme: www-data, _www, apache etc.
Étape 2: Définir un chemin absolu pour sess_save_path config:
(Le mien sur Mac regardé comme ci-dessous)