صفحةٌ خالية بحالة 200 معناها أنّ PHP صادفت خطأً قاتلًا وdisplay_errors مُطفأ. والخطأُ موجود، وقد كُتب في سجلٍّ بدل الشاشة. ولم ينكسر شيءٌ بلا رجعة، والسجلُّ سيسمّي الملفّ والسطر.

اقرأ السجلّ ولا تشغّل display_errors

فتشغيلُ الأخطاء في المتصفّح يُري مساراتِ ملفّاتك لكلّ من يحمّل الصفحة. والسجلُّ فيه المعلوماتُ نفسها ولا يُريها أحدًا.

tail -40 /var/log/php8.3-fpm.log
# or, if the site sets its own:
tail -40 /path/to/site/error_log

وإن كان السجلّ فارغًا

فإنّ PHP لم تبلغ من المسير ما يكفي لتكتب شيئًا. سببان، بترتيب الرجحان:

  1. الذاكرة — فالسكربتُ الذي يتجاوز memory_limit يُقتَل قبل أن يستطيع التسجيل. ارفعه مؤقّتًا لترى الخطأ الحقيقيّ: memory_limit = 512M
  2. خطأٌ نحويّ في ملفٍّ مضمَّن — والأمر php -l يسمّيه: php -l wp-config.php

على ووردبريس على وجه التخصيص

تسعٌ من عشرٍ إضافةٌ أو قالبٌ حُدّث قبل دقائق. غيّر اسم دليل الإضافات — فيعود الموقع وكلُّ إضافةٍ مُطفأة، وإعادةُ أسمائها واحدةً واحدة تجد الجانية.

mv wp-content/plugins wp-content/plugins.off
# site loads? rename back and re-enable one at a time
أضف define("WP_DEBUG_LOG", true); إلى wp-config.php. فيذهب الخطأ إلى wp-content/debug.log لا إلى الشاشة.