Schwerwiegender Fehler: Aufruf der undefinierten Funktion cache_get () [geschlossen]

10

Ich erhalte die folgende Fehlermeldung auf dem Server

Fatal error: Call to undefined function cache_get() in includes/module.inc on line 665
Drush command terminated abnormally due to an unrecoverable error.                                                                                [error]
Error: Call to undefined function cache_get() in includes/module.inc, line 665

Wie kann ich das beheben?

Dinesh Kumar Sarangapani
quelle
1
In meinem Fall habe ich das zugrunde liegende Problem durch Hinzufügen function cache_get() { return false; }zu gefunden settings.php.
kqw
5
In meinem Fall wurde Ubuntu standardmäßig für die Verwendung von PHP7 eingerichtet. Drush benötigt PHP5, vorausgesetzt, Ihr Server verwendet auch PHP5 ... Versuchen Siesudo ln -sfn /usr/bin/php5 /etc/alternatives/php
Jorge Orpinel

Antworten:

2

Wenn Sie drushdie Befehlszeile eingeben, haben Sie wahrscheinlich den richtigen Ort erreicht, um Ihr Problem zu lösen. Dieser Fehler tritt auf, wenn er drushnicht aktuell ist und wenn Sie ihn drushaus dem offiziellen Repository in Ubuntu installieren .

Die Problemumgehung ist einfach: Installieren Sie einfach eine neue Version von drush! Dazu müssen Sie das Backports-Paket von Ubuntu installieren.

Yusef
quelle
Ich bin auch auf die gleiche Lösung gestoßen, ich benutze Drush 4.6. Auf welche Version kann ich upgraden?
Dinesh Kumar Sarangapani
13

Für mich war die Ursache anders: Einige Fehler werden von Drupals Fehlerbehandlungsroutine nicht abgefangen.

Ich habe ein new DateTime()in meinem settings.php(wahrscheinlich sehr seltenen) verwendet. Es wurde ein Fehler generiert, weil die date.timezoneEinstellung in meiner CLI php.ininicht festgelegt wurde.

Um den wirklichen Fehler zu finden (dies ist der interessante Teil der Antwort für euch alle, denke ich):

Bearbeiten Sie Ihre module.incZeile 723.

Fügen Sie diese Zeilen vor dem cache_getAnruf hinzu.

if (!function_exists('cache_get')){ 
    debug_print_backtrace(); 
}
$implementations = cache_get('module_implements', 'cache_bootstrap');

Es könnte Ihnen viele Informationen über die wahre Quelle des Problems geben!

Etienne
quelle
Das war sehr nützlich für mich, mein Problem war, weil ein Problem in fast404. Es scheint verschiedene Möglichkeiten zu geben, um diesen Fehler zu erreichen. Diese Technik hilft beim Debuggen. Vielen Dank
Casivaagustin
Gerne helfen :)
Etienne
1
Ich hatte einen Syntaxfehler in settings.php, der zu einem schwerwiegenden Fehler führte: Aufruf der undefinierten Funktion cache_get (). Ich würde denjenigen, die dieses Problem haben, empfehlen, ihre Datei settings.php zu überprüfen.
ndvo
Dies gilt hauptsächlich für Probleme mit der neuesten PHP-Version, bei denen session.save_handler nicht funktioniert. Entfernen Sie daher die folgende Zeile aus settings.php ini_set ('session.save_handler', 'user'). oder Ersetzen Sie die Zeile durch session_set_save_handler (neuer SessionHandler ()); ---------------------------- Aktuelle Zeile ini_set ('session.save_handler', 'user'); Muss durch session_set_save_handler (neuer SessionHandler ()) ersetzt werden;
Tapas Talukder