Błąd krytyczny: wywołanie niezdefiniowanej funkcji cache_get () [zamknięta]

10

Otrzymuję następujący błąd na serwerze

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

Jak to naprawić?

Dinesh Kumar Sarangapani
źródło
1
W moim przypadku znalazłem podstawowy problem, dodając function cache_get() { return false; }do settings.php.
kqw
5
W moim przypadku Ubuntu było skonfigurowane tak, aby używało php7 domyślnie. Drush potrzebuje php5, zakładając, że twój serwer używa również php5 ... Spróbujsudo ln -sfn /usr/bin/php5 /etc/alternatives/php
Jorge Orpinel

Odpowiedzi:

2

Po wpisaniu drushw wierszu polecenia prawdopodobnie trafiłeś we właściwe miejsce, aby rozwiązać problem. Ten błąd pojawia się, gdy drushnie jest aktualny i występuje podczas instalacji drushz oficjalnego repozytorium w Ubuntu.

Obejście tego problemu jest proste: wystarczy zainstalować nową wersję drush! Aby to zrobić, musisz zainstalować z pakietu backports Ubuntu.

Yusef
źródło
Znalazłem też to samo rozwiązanie, używam Drush 4.6. Do której wersji mogę zaktualizować?
Dinesh Kumar Sarangapani,
13

Dla mnie przyczyna była inna: niektóre błędy nie są wykrywane przez moduł obsługi błędów Drupala.

Użyłem a new DateTime()w moim settings.php(prawdopodobnie bardzo rzadkim). To wygenerowało błąd, ponieważ date.timezoneustawienie w moim CLI php.ininie zostało ustawione.

Aby znaleźć prawdziwy błąd (myślę, że jest to interesująca część odpowiedzi dla was wszystkich):

Edytuj swój module.incwiersz 723.

Dodaj te linie przed cache_getpołączeniem.

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

Może dostarczyć wielu informacji o prawdziwym źródle problemu!

Etienne
źródło
Było to dla mnie bardzo przydatne. Problem polegał na tym, że problem występował w fast404. Wydaje się, że istnieje kilka sposobów na osiągnięcie tego błędu, ta technika pomoże w debugowaniu. Dzięki
casivaagustin
Chętnie pomogę :)
Etienne
1
Miałem błąd składniowy w settings.php, który spowodował błąd krytyczny: Wywołanie niezdefiniowanej funkcji cache_get (). Sugeruję, aby osoby mające ten problem dokładnie sprawdziły plik settings.php.
ndvo
Jest to w zasadzie dla problemów z najnowszą wersją PHP, w których session.save_handler nie działa. Więc usuń poniżej linię z settings.php ini_set ('session.save_handler', 'user'); lub Zamień wiersz na session_set_save_handler (new SessionHandler ()); ---------------------------- Bieżąca linia ini_set ('session.save_handler', 'user'); Wymaga zastąpienia przez session_set_save_handler (new SessionHandler ());
tapas talukder