2010-02-09 5 views
1

J'ai développé un site Web localement avec CodeIgniter et j'ai essayé de le télécharger sur mon serveur Web et d'obtenir l'erreur suivante (que je n'ai jamais vue avant le téléchargement).Problèmes de téléchargement de CodeIgniter de localhost vers le site Web

Fatal error: Class 'CI_Hooks' not found in <snip>/system/codeigniter/Common.php on line 136 

J'ai lu que CodeIgniter ne joue pas bien avec PHP 5.3.x, sauf pour leur dernière version (que j'ai aussi téléchargé et essayé le téléchargement, mais en remplaçant simplement mes fichiers modifiés dans le répertoire système), Cependant, j'ai toujours la même erreur. Googling ce message n'a pas aidé beaucoup ... Quelqu'un voit quelque chose de similaire?

Répondre

1

Quelle version de CI que vous utilisez? J'utilise la dernière version de CI 1.7.2 et dans le fichier system/codeigniter/Common.php Je ne trouve aucun appel à la classe CI_Hooks.

Avez-vous une bibliothèque personnalisée ou touchez le fichier système CI lors du développement? Avez-vous vérifié que tous les fichiers téléchargés avec succès sur le serveur?

+0

C'est la chose drôle, je ne pouvais pas non plus. Je vais essayer de tout remettre en place ...mais je n'ai pas implémenté quoi que ce soit de spécial, à part de renommer les fichiers 'welcome' en 'main' – espais

+0

Peut-être que vous téléchargez le mauvais fichier. Il est préférable d'utiliser SCM comme git, svn, mercurial pour gérer votre code source et le télécharger sur le serveur, ainsi vous pouvez vous assurer que le code du serveur est à jour et identique à celui de votre machine de développement. Je préfère git et toujours l'utiliser quand je le peux. –

+0

s'avère que c'était un téléchargement FTP défectueux ... merci! – espais

1

J'ai eu un problème similaire il y a quelques mois et, malheureusement, je n'ai jamais vraiment identifié exactement ce qui s'est passé. Cependant les étapes que j'ai prises étaient les suivantes:

Au lieu de télécharger des fichiers et de risquer la corruption dans le transfert juste WGET le code zip codeigniter directement sur votre serveur. Décompressez ce fichier, puis déplacez-le dans le répertoire racine de votre site Web.

Maintenant, chargez votre domaine et assurez-vous que l'installation CI de base est fonctionnelle sans aucune modification. Si cela fonctionne, déplacez les fichiers spécifiques de votre site Web un peu à la fois et continuez à recharger souvent afin de savoir quelles pauses (le cas échéant).

Dans mon cas, rien ne s'est cassé, donc je ne peux que supposer que SFTP soit en train de travailler sur mes fichiers ou qu'un autre problème étrange s'est produit.

0

la ligne est dans une fonction appelée load_class, et une recherche de 'CI_Hooks' montre qu'elle est définie dans /system/libraries/Hooks.php. Recherche de « crochets » (avec les guillemets) montre une ligne

$EXT =& load_class('Hooks'); 

dans le système/CodeIgniter/CodeIgniter.php

Vous pourriez vouloir vérifier si le système/bibliothèques a un Hooks.php et qu'il a en fait une capitale H. Si non, alors c'est votre problème. Sous Windows, pour diverses raisons historiques, le nom du fichier n'a pas d'importance, donc votre application fonctionnerait correctement sous Windows, mais lorsque vous la déplaceriez sous linux/unix, cela poserait des problèmes.

J'ai fait cette erreur une fois quand j'ai donné un nom de fichier de modèle une première lettre majuscule. Cela a bien fonctionné dans Windows, mais quand je l'ai déployé dans Linux, il a immédiatement signalé une erreur. Heureusement, c'était plus facile à traquer.

1

Le chargement de la classe 'Hooks' se produit en CodeIgniter.php comme 82. Je dirais que c'est un problème de .htaccess, ou peut-être que le chemin vers votre dossier système est faux.

Questions connexes