Mam problem z instalacją Drupala, na przykład:
- kiedy włączam lub wyłączam moduły, przekierowuje mnie do pustej strony,
- kiedy tworzę nowy typ zawartości i zapisuję go, przekierowuje mnie na pustą stronę,
- po dodaniu nowego widoku i zapisaniu go przekierowuje mnie do pustej strony,
- gdy próbuję wyczyścić pamięć podręczną, przekierowuje mnie z powrotem do pustej strony,
- lub w podobnych przypadkach.
Zasadniczo wszystkie strony z potwierdzeniami przekierowują mnie na biały ekran. Kiedy go odświeżę, pokaże mi się strona. Próbowałem zwiększyć wartość pamięci PHP, ale to nie pomaga.
Czy są na to jakieś inne rozwiązania?
Błąd, który mam:
Błąd krytyczny: wyczerpany dozwolony rozmiar pamięci 100663296 bajtów (próba przydzielenia 8192 bajtów) w witrynach / wszystkich / modułach / widokach / wtyczkach / views_plugin_localization_none.inc w linii 1
Odpowiedzi:
Wiem, że może być późno, ale pomogło mi to. Najczęściej moduł powoduje WSOD, nie mogłem po prostu wyłączyć modułów, aby sprawdzić, który to był, ponieważ mogłem stracić dane w tym procesie. Tym, co zrobiłem, było tymczasowe edytowanie tej funkcji w katalogu
module.inc
głównymincludes
Dodałem te 2 instrukcje drukowania do powyższego kodu, a następnie odśwież stronę, moduł, który nie osiągnął instrukcji „Zakończ ładowanie $ moduł”, jest tym, który ma problem ... został opracowany w moim przypadku.
Po znalezieniu modułu możesz przejść do tabeli systemowej i poszukać tego modułu, ustawić jego status = 0 i bootstrap = 0 lub uruchomić zapytanie:
Odniesienie: Debugowanie Drupal White Screen of Death (WSOD)
źródło
Wklej ten kod do swojego
index.php
pliku. Zamiast pustej strony wyświetli się komunikat o błędzie. Przynajmniej można poznać przyczynę problemu. Wklej go zaraz po tagu php.Mam nadzieję, że pokaże ci drogę!
http://drupal.org/node/158043
źródło
tail /var/log/apache2/error.log
. Spowoduje to wyświetlenie 10 najnowszych wierszy tego pliku.index.php
jest złym pomysłem (nawet tymczasowym, ponieważ większość ludzi jest leniwa, aby go później usunąć, jeśli to działa), lepiej wkleić go bezpośrednio do pliku ustawień.Przyczyną pustego białego ekranu śmierci jest wyłączenie raportowania błędów, aby sprawdzić błąd, dodaj następujące wiersze w pliku setting.php:
W przypadku napotkanego błędu („Wyczerpany dozwolony rozmiar pamięci XXX bajtów”) możesz wypróbować następujące rzeczy:
Ręcznie obetnij pamięć podręczną i sprawdź, czy to rozwiązuje problem (prawdopodobnie dobrze jest wykonać kopię zapasową bazy danych przed wykonaniem tego):
Access phpMyAdmin and truncate all tables starting by cache_ from the database
.Zwiększ limit pamięci (ponieważ główną przyczyną powyższego błędu jest pamięć wyczerpana przez serwer, która spowodowała częściowe załadowanie modułów i powoduje problem), dodając następujący wiersz w pliku settings.php:
ini_set('memory_limit', '-1');
Dodanie
ini_set('memory_limit', '-1');
zastępuje domyślny limit pamięci PHP.Jeśli chcesz ograniczyć pamięć, zamiast tego
-1
możesz podać rozmiar pamięci, np. „256M” LUB „512M”.źródło
Może się zdarzyć, że w jednym z modułów zabraknie pamięci.
Możesz dodać jeden wiersz kodu do pliku index.php, aby umożliwić Drupalowi działanie z większą ilością pamięci niż ustawienie domyślne:
Dodaj powyższy kod w wierszu po? Php w pliku /drupal/index.php. Jeśli wszystko zacznie działać poprawnie, możesz zidentyfikować przyczynę problemu z pamięcią (najprawdopodobniej jest to moduł).
Wyłącz moduł, a następnie skomentuj ini_set ('memory_limit', '256M'); i sprawdź, czy się teraz ładuje.
Nie zaleca się pozostawiania ini_set ('memory_limit', '256M'); jako rozwiązanie, ale może przynajmniej pozwolić ci przejść do strony z listą modułów.
Pomocne może być wykonanie debug_backtrace () w celu ustalenia, co korzysta z pamięci.
źródło
index.php
jest złym pomysłem (nawet tymczasowym, ponieważ większość ludzi jest leniwa, aby go później usunąć, jeśli to działa), lepiej wkleić go bezpośrednio do pliku ustawień.Błąd:
Aby przekonwertować bajty X na MB, podziel przez 1024 * 1024 lub sprawdź w Wolfram .
zdarza się, gdy PHP próbuje przydzielić bajty Y, ale istnieje sztywny limit X bajtów ustawionych w
memory_limit
ustawieniach konfiguracji PHP .Aktualny limit można sprawdzić, przechodząc do Administracja »Raporty» Raport o stanie »PHP (URL:)
/admin/reports/status/php
lub drukującini_get('memory_limit')
w PHP (zwróć uwagę, że limit może być inny dla interfejsu użytkownika i CLI).Aby to naprawić, musisz zmniejszyć zużycie zasobów, na przykład:
wyłącz wszystkie moduły programistyczne, których obecnie nie używasz (zalecane),
Obejmuje to: Devel, Devel Themer (jeśli włączony).
wyłącz wszystkie moduły, których nie używasz,
wyłącz niektóre zmienne debugowania, które mogą mieć wpływ na zasoby pamięci, np. kilka przykładów z
drush
:wyłącz niektóre rozszerzenia PHP, takie jak XDebug,
memory_limit
konfiguracji PHP .Jeśli zdecydujesz się na zwiększenie limitu pamięci, wiele osób doradza ci włamanie się do twojego rdzenia poprzez wklejenie kodu PHP w
index.php
celu zwiększenia pamięci PHP - nigdy tego nie rób ! To bardzo zła praktyka.Zamiast tego edytuj swój
settings.php
(lubsettings.local.php
jeśli go masz) i wklej następujący kod na końcu:lub lepszym sposobem na to jest edycja pliku konfiguracyjnego PHP (
php.ini
) i zmiana następującego wiersza:Jeśli nie masz pewności, gdzie jest twój
php.ini
, sprawdź:drush status
dowództwo/admin/reports/status/php
.Aby dalej zbadać, które strony / komponenty zużywają najwięcej pamięci, masz następujące możliwości:
xdebug.profiler_enable=1
) lub XHProf ,Aby uzyskać więcej informacji, sprawdź:
drush
sprawdzić: Pamięci Wyczerpane z Drush na DA.SEźródło
memory_limit
. Miałem zgłoszony problem tylko zdrush
dokładnie dlatego, że miałem błąd w,/etc/php/7.0/cli/php.ini
ale nie w/etc/php/7.0/cli/php.ini
, więc interfejs użytkownika drupal działał dobrze. Dzięki!Za pomocą modułu można kontrolować ten limit pamięci. Moduł PHP Runtime Configurator zapewnia wiele opcji konfiguracji bez zmiany pliku php.ini i restartowania Apache.
Możesz skonfigurować następujące parametry:
źródło