صفحةٌ خالية بحالة 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 لم تبلغ من المسير ما يكفي لتكتب شيئًا. سببان، بترتيب الرجحان:
- الذاكرة — فالسكربتُ الذي يتجاوز memory_limit يُقتَل قبل أن يستطيع التسجيل. ارفعه مؤقّتًا لترى الخطأ الحقيقيّ:
memory_limit = 512M - خطأٌ نحويّ في ملفٍّ مضمَّن — والأمر 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 لا إلى الشاشة.