it-swarm.com.de

Wie bringe ich PHP Fehler) zum Schweigen?

Gibt es eine Möglichkeit, alle PHP Fehler, Warnungen und Hinweise in Drupal zum Schweigen zu bringen? Sie sind auf der Entwicklungsseite nützlich, stellen jedoch ein großes Sicherheitsrisiko dar und lassen die Seite live schlecht aussehen.

Ich weiß auf Drupal 6 die Seite unter admin/settings/error-reporting kann aufhören Drupal vom Schreiben von Fehlern auf den Bildschirm, aber wo finde ich das? Drupal 7? Es scheint, dass es fehlt.

32

Der Pfad ändert sich wie in Drupal 7). Die gleiche Seite, die Sie zuvor unter admin/settings/error-report gesehen haben, befindet sich jetzt unter admin/config/development/logging.

screenshot

29
kiamlaluno

Wie vorgeschlagen, finden Sie in Administration » Configuration » Development (Unter /admin/config/development/logging) Die Einstellung zum Deaktivieren der Anzeige von Fehlermeldungen, aber Fehler/Hinweise werden nicht vollständig deaktiviert.

Dies liegt daran, dass Drupal 7 erzwingt E_ALL, sodass sie immer noch in Syslog geschrieben werden und Sie sie in Letzte Protokolle sehen können, was sich auf die Leistung Ihrer Website auswirkt.

Um die Benachrichtigungen vollständig zu deaktivieren, müssen Sie die folgende Zeile in Ihre settings.php - oder php.ini - Datei einfügen:

ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

Alle Fehler anzeigen, mit Ausnahme von Hinweisen und Warnungen zu Codierungsstandards.

Um alle PHP Fehler, die nicht empfohlen werden, zum Schweigen zu bringen, können Sie versuchen, Ihre Einstellungsdatei hinzuzufügen:

error_reporting(0); // Disable all errors.

Siehe: error_reporting()


Verantwortlich Drupal 7 Kerncode für die E_ALL - Protokollierung (Datei: includes/bootstrap.inc):

// Enforce E_ALL, but allow users to set levels not part of E_ALL.
error_reporting(E_ALL | error_reporting());

Siehe auch:

18
kenorb

Eine Sache, die niemand erwähnt hat und die für die Leute hilfreich sein kann, ist, dass Drupal 7 alle lokalen Systemfehlerberichtsebenen ignoriert. Sie können also nicht .htaccess oder sogar php.ini zum Festlegen verwenden PHP-Fehlerberichterstattungsstufen in Drupal.

In D8 wird hierfür ein Patch vorgeschlagen, aber derzeit sind Sie in D7 auf die 3 Fehlermasken beschränkt - alle, keine oder Fehler und Warnungen -, die auf der angegebenen Administrationsseite kiamlaluno festgelegt sind.

4
forest

Die Einstellungen sind immer in admin/config/development/logging :)

3
Remon

Ich bin mir nicht sicher, warum die Drush-Methode so undokumentiert ist, aber ich habe in meinem Build-Skript:

drush vset error_level 0

... wodurch Fehlermeldungen im Protokoll gespeichert, aber nicht auf dem Bildschirm angezeigt werden.

2
Matt Fletcher

Möglicherweise müssen Sie der oben angegebenen Lösung Kenorb Anführungszeichen hinzufügen:

ini_set('error_reporting', 'E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR');
1
Greg Lund-Chaix

Dafür gibt es ein Modul:

https://www.drupal.org/project/errorlevelpermission

Von der Projektseite:

Also kannst du

  • lassen Sie eine Sitebuilder-Rolle (oder sogar eine spezielle Debugger-Rolle) Fehler und Hinweise anzeigen
  • lassen Sie andere keine Fehler und Hinweise sehen.
0
geek-merlin