Ich habe ein Problem mit meiner Drupal-Installation, zum Beispiel:
- Wenn ich die Module aktiviere oder deaktiviere, leitet es mich auf eine leere Seite weiter.
- Wenn ich einen neuen Inhaltstyp erstelle und speichere, leite ich ihn auf eine leere Seite weiter.
- Wenn ich eine neue Ansicht hinzufüge und speichere, werde ich auf eine leere Seite weitergeleitet.
- Wenn ich versuche, den Cache zu leeren, werde ich auf eine leere Seite zurückgeleitet.
- oder in ähnlichen Fällen.
Grundsätzlich leiten mich alle Bestätigungsseiten auf einen weißen Bildschirm um. Wenn ich es erneut aktualisiere, wird die Seite angezeigt. Ich habe versucht, den PHP-Speicherwert zu erhöhen, aber es hilft nicht.
Gibt es noch andere Lösungen dafür?
Der Fehler, den ich habe:
Schwerwiegender Fehler: Die zulässige Speichergröße von 100663296 Byte ist erschöpft (es wurde versucht, 8192 Byte zuzuweisen) in sites / all / modules / views / plugins / views_plugin_localization_none.inc in Zeile 1
Antworten:
Ich weiß, dass es vielleicht zu spät ist, aber es hat mir geholfen. In den meisten Fällen, in denen ein Modul WSOD verursacht, konnte ich die Module nicht einfach deaktivieren, um zu testen, um welche es sich handelt, da ich möglicherweise Daten verloren habe. Was ich tat , war vorübergehend diese Funktion in bearbeiten
module.inc
, imincludes
KernverzeichnisUnd ich habe diese 2 print-Anweisungen in den obigen Code eingefügt und dann die Seite aktualisiert. Das Modul, das die Anweisung "Lade das $ -Modul abschließen" nicht erreicht hat, ist das mit dem Problem ... es wurde in meinem Fall entwickelt.
Nachdem Sie das Modul gefunden haben, können Sie in die Systemtabelle gehen und nach diesem Modul suchen, dessen Status auf 0 und Bootstrap auf 0 setzen oder die Abfrage ausführen:
Referenz: Debuggen von Drupal White Screen of Death (WSOD)
quelle
Fügen Sie diesen Code in Ihre
index.php
Datei ein. Es wird Ihnen die Fehlermeldung anstelle einer leeren Seite angezeigt. Zumindest die Ursache des Problems ist bekannt. Fügen Sie es direkt nach dem PHP-Tag ein.Ich hoffe, es zeigt Ihnen den Weg !.
http://drupal.org/node/158043
quelle
tail /var/log/apache2/error.log
. Das zeigt Ihnen die 10 letzten Zeilen dieser Datei.index.php
ist eine schlechte Idee (auch vorübergehend, da die meisten Leute zu faul sind, es später zu entfernen, wenn dies funktioniert), ist es besser, es direkt in Ihre Einstellungsdatei einzufügen.Grund für den leeren weißen Bildschirm des Todes ist die deaktivierte Fehlerberichterstattung. Um den Fehler zu überprüfen, fügen Sie die folgenden Zeilen in Ihre setting.php-Datei ein:
Für den Fehler ("Erlaubte Speichergröße von XXX Bytes erschöpft") können Sie die folgenden Dinge versuchen:
Kürzen Sie den Cache manuell und prüfen Sie, ob das Problem dadurch behoben wird (es ist wahrscheinlich eine gute Idee, vorher eine Sicherungskopie Ihrer Datenbank zu erstellen):
Access phpMyAdmin and truncate all tables starting by cache_ from the database
.Erhöhen Sie das Speicherlimit (der Hauptgrund für den oben genannten Fehler ist der vom Server beanspruchte Speicher, der das teilweise Laden der Module verursacht hat und das das Problem verursacht), indem Sie die folgende Zeile in Ihre settings.php-Datei
ini_set('memory_limit', '-1');
einfügen : Durch
ini_set('memory_limit', '-1');
das Hinzufügen wird das überschrieben Standard-PHP-Speicherlimit.Wenn Sie den Speicher einschränken möchten,
-1
können Sie stattdessen eine Speichergröße wie '256M' ODER '512M' angeben.quelle
Es kann sehr gut sein, dass einem Ihrer Module der Speicher ausgeht.
Sie können Ihrer index.php-Datei eine Codezeile hinzufügen, damit Drupal mit mehr Speicher als der Standardeinstellung ausgeführt werden kann:
Fügen Sie den obigen Code in die Zeile nach dem? Php in Ihrer /drupal/index.php-Datei ein. Wenn alles gut funktioniert, können Sie feststellen, was das Speicherproblem verursacht (höchstwahrscheinlich ein Modul).
Deaktivieren Sie ein Modul und kommentieren Sie das ini_set ('memory_limit', '256M') aus. und sehen, ob es jetzt geladen wird.
Es wird nicht empfohlen, das ini_set ('memory_limit', '256M') zu belassen. als Lösung vorhanden, aber es kann Ihnen zumindest ermöglichen, zu Ihrer Modullistenseite zu gelangen.
Es kann hilfreich sein, debug_backtrace () auszuführen, um festzustellen, was den Speicher verwendet hat.
quelle
index.php
ist eine schlechte Idee (auch vorübergehend, da die meisten Leute zu faul sind, es später zu entfernen, wenn dies funktioniert), ist es besser, es direkt in Ihre Einstellungsdatei einzufügen.Der Fehler:
Um Bytes X in MB umzuwandeln, dividieren Sie durch 1024 * 1024 oder überprüfen Sie bei Wolfram .
passiert, wenn PHP versucht, Y-Bytes zuzuweisen, aber es gibt ein festes Limit für X-Bytes, das durch die PHP-
memory_limit
Konfigurationseinstellungen festgelegt wird.Das aktuelle Limit kann unter Administration »Berichte» Statusbericht »PHP (URL:)
/admin/reports/status/php
oder durch Druckenini_get('memory_limit')
in PHP überprüft werden (beachten Sie, dass das Limit für Benutzeroberfläche und CLI unterschiedlich ist).Um dies zu beheben, müssen Sie den Ressourcenverbrauch senken, zum Beispiel:
Deaktivieren Sie alle Entwicklungsmodule, die Sie derzeit nicht verwenden (empfohlen).
Dies beinhaltet: Devel, Devel Themer (falls aktiviert).
Deaktivieren Sie alle Module, die Sie nicht verwenden,
Deaktivieren Sie bestimmte Debug-Variablen, die sich auf Ihre Speicherressourcen auswirken können, z. B. einige Beispiele mit
drush
:Deaktivieren Sie bestimmte PHP-Erweiterungen wie XDebug,
memory_limit
Ihre PHP-Konfiguration .Wenn Sie sich für eine Erhöhung des Speicherlimits entscheiden, raten viele Leute hier, Ihren Kern tatsächlich zu hacken, indem Sie den PHP-Code in Ihren Code einfügen
index.php
, um Ihren PHP-Speicher zu vergrößern - tun Sie das niemals ! Es ist eine sehr schlechte Praxis.Bearbeiten Sie stattdessen Ihren Code
settings.php
(odersettings.local.php
falls vorhanden) und fügen Sie dort am Ende den folgenden Code ein:Eine bessere Möglichkeit besteht darin, die PHP-Konfigurationsdatei (
php.ini
) zu bearbeiten und die folgende Zeile zu ändern:Wenn Sie sich nicht sicher sind, wo Sie sich befinden
php.ini
, gehen Sie folgendermaßen vor:drush status
Befehl/admin/reports/status/php
.Um weiter zu untersuchen, welche Seiten / Komponenten den meisten Speicher belegen, haben Sie folgende Möglichkeiten:
xdebug.profiler_enable=1
) oder XHProf ,Weitere Informationen finden Sie unter:
drush
Besuche: Speicher erschöpft mit Drush bei DA.SEquelle
memory_limit
. Ich hatte das gemeldete Problem nur mitdrush
genau, weil ich einen Fehler in hatte,/etc/php/7.0/cli/php.ini
aber nicht in/etc/php/7.0/cli/php.ini
, so funktionierte Drupal UI gut. Vielen Dank!Sie können ein Modul verwenden, um dieses Speicherlimit zu steuern. Das PHP Runtime Configurator- Modul bietet viele Konfigurationsmöglichkeiten, ohne die php.ini-Datei zu ändern und Apache neu zu starten.
Sie können folgende Parameter konfigurieren:
quelle