Frage

Ich habe beides ausprobiert:

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

und auch :

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

in der .htaccess-Datei.

Eigentlich beide Methoden arbeite aber nur zeitweise.Das heißt, sie funktionieren bei etwa 37 Seitenanfragen einwandfrei und schlagen dann bei etwa 42 Seitenanfragen fehl, was zu einem Aufruf von require() führt, der einen schwerwiegenden Fehler verursacht, der die Website effektiv zum Absturz bringt.

Ich bin mir nicht einmal sicher, wo ich anfangen soll, herauszufinden, was los ist!


@Anmerkung

Sieht so aus, als hätten Sie das aktuelle Verzeichnis in Ihrem Include-Pfad dupliziert.Versuchen Sie, eines der „.:“ aus Ihrer Zeichenfolge zu entfernen.

Die In-Script-Version war ursprünglich

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

und somit das .:.:kam vom bestehenden Pfad:

ini_get('include_path')

Ich habe trotzdem versucht, es zu entfernen, aber das Problem besteht weiterhin.

War es hilfreich?

Lösung

Es stellte sich heraus, dass das Problem mit einem PHP-Fehler in 5.2.5 zusammenhängt

Das Festlegen eines „admin_flag“ für include_path führte dazu, dass der Include-Pfad in einigen Anfragen leer war, und Plesk setzt in der Standardkonfiguration für irgendetwas ein admin_flag.Ein PHP-Update hat das Problem behoben.

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

Andere Tipps

Hast du es versucht set_include_path()?.Als Vorteil gibt dies bei einem Fehler den Wert „false“ zurück, so dass Sie zumindest den Vorfall abfangen und einige aussagekräftige Debug-Daten generieren können.Darüber hinaus sollten Sie die Konstante verwenden PATH_SEPARATOR da es sich zwischen Windows / *nix unterscheidet.

Als konkretes Beispiel:

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

(get_include_path() am Ende bedeutet, dass der eingestellte ini-/htaccess-Pfad erhalten bleibt)

Sieht so aus, als hätten Sie das aktuelle Verzeichnis in Ihrem Include-Pfad dupliziert.Versuchen Sie, eines der „.:“ aus Ihrer Zeichenfolge zu entfernen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top