هل هناك طريقة لإسكات كل PHP الأخطاء والتحذيرات والإشعارات في دروبال؟ إنها مفيدة على موقع التطوير ولكنها تشكل خطرًا أمنيًا كبيرًا ، وتجعل الموقع يبدو سيئًا على الهواء مباشرة.
أعرف في Drupal 6 يمكن أن تتوقف الصفحة الموجودة في admin/settings/الإعلام عن الخطأ Drupal من كتابة الأخطاء إلى الشاشة ، ولكن أين يمكنني العثور عليها في Drupal 7؟ يبدو أنه مفقود.
يتغير المسار ، كما في Drupal 7 نفس الصفحة التي قد تراها من قبل في admin/settings/error-Reporting أصبحت الآن في admin/config/development/logging.
كما هو مقترح ، في Administration » Configuration » Development
(في /admin/config/development/logging
) يمكنك العثور على إعداد تعطيل عرض رسائل الخطأ ، لكنه لن يعطل الخطأ/الإشعارات تمامًا.
هذا لأن Drupal 7 يفرض E_ALL ، لذلك لا يزالون يكتبون إلى سجل النظام ويمكنك رؤيتهم في السجلات الحديثة يؤثر على أداء موقعك.
لتعطيل الإشعارات تمامًا ، سيتعين عليك إضافة السطر التالي إلى settings.php
أو php.ini
الملف:
ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
عرض جميع الأخطاء ، باستثناء الإشعارات وتحذيرات معايير التشفير.
لإسكات جميع PHP الأخطاء ، وهو أمر غير مستحسن ، يمكنك محاولة إضافة ملف الإعدادات الخاص بك:
error_reporting(0); // Disable all errors.
انظر: error_reporting()
المسؤول Drupal 7 كود أساسي لـ E_ALL
تسجيل (الملف: includes/bootstrap.inc
):
// Enforce E_ALL, but allow users to set levels not part of E_ALL.
error_reporting(E_ALL | error_reporting());
أنظر أيضا:
شيء واحد لم يذكره أحد قد يكون مفيدًا للأشخاص أن يعرفوه هو أن Drupal 7 يتجاهل جميع مستويات الإبلاغ عن أخطاء النظام المحلي. لذلك لا يمكنك استخدام .htaccess أو حتى php.ini لتعيين مستويات الإبلاغ عن خطأ php في دروبال.
هناك تصحيح مقترح لهذا في D8 ، ولكن حاليًا في D7 أنت مقيد بـ 3 أقنعة خطأ - كل ، لا شيء ، أو أخطاء وتحذيرات - التي تم تعيينها على صفحة المشرف المشار إليها kiamlaluno.
الإعدادات دائمًا في admin/config/development/logging :)
لست متأكدًا من أن طريقة Drush غير موثقة للغاية ، ولكن لدي في البرنامج النصي للبناء الخاص بي:
drush vset error_level 0
... مما يحفظ رسائل الخطأ في السجل ولكنه لا يعرضها على الشاشة.
قد تحتاج إلى إضافة علامات اقتباس إلى حل kenorb المنشور أعلاه:
ini_set('error_reporting', 'E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR');
هناك وحدة لذلك:
https://www.drupal.org/project/errorlevelpermission
من صفحة المشروع:
لذا يمكنك