Codeigniter PHP avec Apache sur alpin linux

J'ai écrit une petite application de test de codeigniter qui fonctionne actuellement sur ma boîte de Windows. J'ai créé un linux vm et j'ai essayé d'installer l'application sur ce nouveau serveur virtuel. une partie de mon application web fonctionne correctement mais d'autres parties, non. spécifiquement, cela fonctionne:

 http://123.123.123.123/myapp/controller1/

mais ce n'est pas:

 http://123.123.123.123/myapp/controller2/mymethod/1/2/3

Il échoue avec une erreur qu'il ne peut pas charger controller2_model.

Voici le code réel du contrôleur qui échoue (il s'appelle vraiment xferLogger vs. controller2):

 class xferLogger extends CI_Controller { 
      public function __construct() { 
              parent::__construct();
              echo(2); 
              $this->load->model('xferLogger_model'); 
              $this->load->helper('date'); //this library is needed for the base_url() method that is being called in the view "result.php" 
              $this->load->helper('url'); 
      } 

et voici le modèle:

class xferLogger_model extends CI_Model { 
    public function __construct() { 
              $this->load->database();
                } 

Le message d'erreur complet est: Une erreur a été rencontrée. Impossible de localiser le modèle que vous avez spécifié: xferlogger_model.

Voici quelque chose que j'ai remarqué. Dans le message d'erreur, vous remarquerez que le "L" de l'enregistreur est en minuscules. mais dans mon code, c'est une capitale L. J'ai vérifié dans mon contrôleur, le modèle lui-même, et aussi le fichier routes.php. Je n'arrive pas à trouver de problèmes avec mon boîtier.

??

0
pouvez-vous s'il vous plaît poster votre code où vous essayez et chargez le modèle? Pouvez-vous s'il vous plaît également poster votre modèle (juste le premier bit + constructeur). Mais je suis d'accord avec les gens ci-dessus - vous avez probablement "Controller2_model.php" - il devrait être "controller2_model.php"
ajouté l'auteur Laurence, source
le message d'erreur complet est: "Une erreur est survenue Impossible de localiser le modèle que vous avez spécifié: mycontroller2_model". J'ai copié tout sur ... J'ai vérifié les divergences avec le cas .. n'ai rien remarqué jusqu'ici. Je continuerai à vérifier.
ajouté l'auteur dot, source
aussi confirmé le constructeur pour le contrôleur est appelé mais il meurt juste quand j'essaie de charger mon modèle ...
ajouté l'auteur dot, source
class xferLogger extends CI_Controller {fonction publique __construct() {parent :: __ construct (); écho (2); $ this-> load-> model ('xferLogger_model'); $ this-> load-> helper ('date');//cette bibliothèque est nécessaire pour la méthode base_url() qui est appelée dans la vue "result.php" $ this-> load-> helper ('url'); } et voici le modèle: <? PHP class xferLogger_model étend CI_Model {fonction publique __construct() {$ this-> load-> database ();}
ajouté l'auteur dot, source
J'ai vérifié les dossiers, les noms de table, les noms de fichiers. les autres modèles dans le même dossier sont en cours de chargement sans aucun problème ...
ajouté l'auteur dot, source
comme SérgioMichels déjà mentionné, sur linux (et, IIRC, tout autre système non windows) les noms de fichiers/répertoires et les noms de tables MySQL sont sensibles à la casse. Et aussi, "ne fonctionne pas" n'est pas un message d'erreur valide.
ajouté l'auteur tereško, source
Montrer l'erreur complète serait utile.
ajouté l'auteur Samy Dindane, source
Linux est sensible à la casse, peut-être que cela gâche votre application.
ajouté l'auteur Sérgio Michels, source
Etes-vous sûr que vous avez tout copié, y compris les fichiers cachés comme .htaccess
ajouté l'auteur ehudokai, source

1 Réponses

A partir du guide d'utilisation: Les noms de classe doivent avoir la première lettre en majuscule avec le reste du nom en minuscules. Ainsi donc:

class Xferlogger_model extends CI_Model//First letter capitalised

et votre charge de modèle

$this->load->model('xferlogger_model'); //lower case

et votre nom de fichier PHP

xferlogger_model.php   //lower case

Guide d'utilisation du modèle Codeigniter

0
ajouté
J'ai amélioré ma réponse. Pouvez-vous également rééditer votre question originale avec les codes mis à jour et les erreurs que cela donne?
ajouté l'auteur Laurence, source
pas de problèmes - c'est comme ça que nous apprenons tous :)
ajouté l'auteur Laurence, source
cela n'a pas résolu mon problème. J'ai traversé le contrôleur, le modèle et les routes et remplacé xferLogger avec Xferlogger partout.
ajouté l'auteur dot, source
D'accord. donc votre dernière suggestion de changer le nom du modèle en minuscules a fait une différence. ça marche maintenant. la leçon à emporter est donc de garder tous les noms de modèles en minuscules?
ajouté l'auteur dot, source
et mes excuses pour ne pas avoir lu le manuel attentivement. ce n'est pas une excuse .. mais j'essaie de passer de windows, wamp, MySQL à linux, postgres, apache. et codeigniter, linux et postgres sont tous nouveaux pour moi donc je suis un peu noyé dans docs. Merci pour l'aide.
ajouté l'auteur dot, source
(TgLINUX) GNU/LINUX fr-Tchat TeleGram
(TgLINUX) GNU/LINUX fr-Tchat TeleGram
565 des participants

Groupe d'échange et d'entraide sur les OS GNU/Linux exclusivement, ouvert au public débutants,passionnés & habitués. $sudo ./bienvenue.sh REGLES(CGU): http://telegra.ph/TgLinux-09-03 FBK,TWEET: @TgLinux CHAINE:@UbuntuFacile @FrLibreOffice