Question

J'ai essayé les deux :

ini_set('include_path', '.:/usr/share/php5:/usr/share/php5/PEAR:lib:app/classes');

et aussi :

php_value include_path ".:/usr/share/php5:/usr/share/php5/PEAR:lib:app/classes"

dans le fichier .htaccess.

En fait, les deux méthodes faire du travail mais seulement par intermittence.Autrement dit, ils fonctionneront correctement pour environ 37 requêtes de pages, puis échoueront environ 42 requêtes de pages, ce qui entraînera un appel require() pour provoquer une erreur fatale faisant planter le site.

Je ne sais même pas par où commencer pour essayer de découvrir ce qui se passe !


@note

On dirait que vous avez dupliqué le répertoire actuel dans votre chemin d'inclusion.Essayez de supprimer l'un des « .: » de votre chaîne.

La version en script était à l'origine

ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . 'lib' . PATH_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'classes');

et donc le .:.:venait du chemin existant :

ini_get('include_path')

J'ai quand même essayé de le supprimer et le problème persiste.

Était-ce utile?

La solution

Il s'est avéré que le problème était lié à un bug PHP dans la version 5.2.5.

La définition d'un "admin_flag" pour include_path entraînait que le chemin d'inclusion était vide dans certaines requêtes, et Plesk définissait un admin_flag dans la configuration par défaut pour quelque chose ou autre.Une mise à jour de PHP a résolu le problème.

http://bugs.php.net/bug.php?id=43677

Autres conseils

As-tu essayé set_include_path()?.Comme avantage, cela renvoie false en cas d'échec, vous permettant au moins de détecter l'occurrence et de générer des données de débogage significatives.De plus, vous devriez utiliser la constante PATH_SEPARATOR car il diffère entre Windows / * nix.

À titre d'exemple précis :

set_include_path('.' . PATH_SEPARATOR . './app/lib' . PATH_SEPARATOR . get_include_path());

(le get_include_path() à la fin signifie que quel que soit votre chemin ini / htaccess défini, il restera)

On dirait que vous avez dupliqué le répertoire actuel dans votre chemin d'inclusion.Essayez de supprimer l'un des « .: » de votre chaîne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top