انتقل للمحتوى
الحماية والصيانة

حل مشكلة ووردبريس عالق في وضع الصيانة بعد التحديث

ضغطت تحديث اضافة او قالب، وبعدها ظل الموقع يعرض رسالة الصيانة وما رجع؟ قد تظهر العبارة بالانجليزية: Briefly unavailable for scheduled maintenance. غالبا عملية التحديث توقفت قبل ما تنظف الملف المؤقت الذي يستخدمه ووردبريس. الحل في الحالة العادية بسيط، لكن حذف الملف بسرعة بينما التحديث ما زال يكتب الملفات ممكن يعمل مشكلة اكبر.

عشان نعرف بالضبط ماذا يحدث، كررنا الحالة على نسخة ووردبريس محلية. أنشأنا ملف الصيانة بالطريقة نفسها التي يستخدمها نظام التحديث، سجلنا كود الاستجابة، ثم حذفناه من جذر الموقع. النتيجة: تغيرت الاستجابة من 503 الى 200 مباشرة.

فيديو توثيق التجربة الفعلية

هذا تسجيل شاشة صامت ومتواصل للاختبار وهو يحدث داخل بيئة محلية معزولة. تظهر الخطوات والنتائج الفعلية لحظة التنفيذ، من غير تركيب صور ثابتة.

تسجيل شاشة صامت ومتواصل لتجربة فعلية داخل بيئة محلية معزولة. يعرض الحالة السليمة، تنفيذ المسبب، ظهور النتيجة، ثم الاصلاح واعادة الفحص. لا يستخدم صورا مركبة.
الصفحة الرئيسية لموقع ووردبريس تعمل قبل انشاء ملف الصيانة
الصفحة الرئيسية قبل التجربة، وكانت تستجيب بحالة 200.

نتيجة تجربتنا الفعلية

شغلنا التجربة على ووردبريس 7.1 مع PHP 8.3.30 وMySQL 8.4.3. وضعنا ملفا اسمه .maintenance في نفس المجلد الذي يحتوي على wp-admin وwp-content وwp-includes. كان داخل الملف توقيت حديث يحاكي بداية تحديث لم يكتمل.

اول طلب للصفحة الرئيسية رجع بكود 503 Service Unavailable، وأضاف ووردبريس ترويسة Retry-After: 600. هذا السلوك منطقي: الموقع يبلغ المتصفح ومحركات البحث ان التوقف مؤقت، ويطلب المحاولة بعد 600 ثانية.

رسالة التوقف المؤقت للصيانة المجدولة في ووردبريس
هذه الرسالة الفعلية التي ظهرت عند وجود ملف الصيانة الحديث. قد تظهر بالعربية او الانجليزية حسب حزمة الترجمة ومرحلة تحميلها.

بعد حذف ملف .maintenance أعدنا الطلب، فعادت الصفحة بحالة 200 من اول محاولة. ما غيرنا القالب ولا قاعدة البيانات ولا الاضافات.

عودة الصفحة الرئيسية بعد حذف ملف دوت مينتنانس من مجلد ووردبريس
الصفحة الرئيسية بعد حذف ملف الصيانة، والاستجابة عادت الى 200.

قبل الحذف: تأكد ان التحديث توقف فعلا

رسالة الصيانة لمدة قصيرة اثناء التحديث طبيعية. اذا كانت صفحة التحديث ما زالت مفتوحة وتتحرك، لا تغلقها ولا تحذف الملف. اعط العملية وقتها، خصوصا على الاستضافات البطيئة او عند تحديث عدة اضافات مرة واحدة.

ابدأ بالتدخل لما يمر وقت معقول بدون اي تقدم، او تظهر رسالة فشل في لوحة التحكم، او ينقطع الاتصال وتبقى الشاشة كما هي. خذ نسخة احتياطية اذا كان مدير الملفات يسمح بذلك، وسجل اسم الاضافة او القالب الذي كان قيد التحديث.

اين تجد ملف الصيانة؟

  1. ادخل الى مدير الملفات في لوحة الاستضافة او اتصل عبر SFTP.
  2. افتح جذر تثبيت ووردبريس. غالبا يكون public_html، لكنه قد يكون داخل مجلد فرعي.
  3. تأكد انك ترى مجلدات wp-admin وwp-content وwp-includes.
  4. فعل خيار اظهار الملفات المخفية، لان الاسم يبدأ بنقطة.
  5. ابحث عن .maintenance واحذفه فقط بعد التأكد ان التحديث توقف.
  6. افتح الموقع ولوحة التحكم من جديد، ثم راجع صفحة التحديثات.

لا تبحث عنه داخل wp-content. الملف الافتراضي يكون في جذر تثبيت ووردبريس. ويوضح دليل استكشاف مشاكل ووردبريس الرسمي ان نظام التحديث ينشئ هذا الملف، وان حذفه يزيل رسالة الصيانة عندما لا يتم تنظيفه تلقائيا.

معلومة مهمة: الملف الافتراضي لا يفترض ان يعطل الموقع للابد

كود ووردبريس نفسه يفحص التوقيت المحفوظ داخل الملف. حسب توثيق الدالة wp_is_maintenance_mode، يعتبر ووردبريس وضع الصيانة منتهيا اذا صار التوقيت أقدم من عشر دقائق.

هذا التفصيل بيفرق معنا بالتشخيص. اذا ظلت الرسالة بعد اكثر من عشر دقائق، افحص واحدا من الاحتمالات التالية:

  • عملية او اضافة تعيد انشاء ملف .maintenance بتوقيت جديد.
  • الرسالة محفوظة في كاش الخادم او شبكة CDN، وليست استجابة جديدة من ووردبريس.
  • الموقع يستخدم اضافة “قريبا” او وضع صيانة مستقل، وليس وضع تحديث ووردبريس الافتراضي.
  • يوجد ملف مخصص باسم wp-content/maintenance.php يغير شاشة الصيانة.
  • حذفت الملف من تثبيت مختلف عن التثبيت الذي يخدم النطاق.

ماذا تفحص بعد رجوع الموقع؟

رجوع الصفحة لا يعني ان التحديث اكتمل. افتح لوحة التحكم ثم التحديثات، وتأكد من نسخة الاضافة او القالب الذي كنت تحدثه. افحص الصفحة الرئيسية وصفحة تسجيل الدخول وأهم وظيفة في الموقع. اذا كان متجرا، جرب السلة والدفع على وضع اختبار، ولا تكتف بظهور الصفحة الرئيسية.

راجع سجل PHP وسجل التحديث ان وفرته الاستضافة. من الاسباب الشائعة لانقطاع العملية: مهلة تنفيذ قصيرة، ذاكرة غير كافية، صلاحيات ملفات غير صحيحة، مساحة قرص ممتلئة، او تعارض داخل اضافة التحديث. اذا تكررت الحالة مع نفس الاضافة، اختبرها على نسخة تجريبية وتواصل مع مطورها بدل تكرار التحديث على الموقع المباشر.

اذا حذفت الملف وما زالت الرسالة ظاهرة

  1. افتح رابط الموقع في نافذة خاصة وأضف قيمة مؤقتة مثل ?check=1 للتأكد انك لا ترى نسخة قديمة من المتصفح.
  2. امسح كاش اضافة التخزين، ثم كاش الاستضافة وCDN اذا كانا مستخدمين.
  3. افحص هل ملف .maintenance عاد للظهور بعد حذفه.
  4. عطل اضافة وضع الصيانة من لوحة التحكم، او غير اسم مجلدها مؤقتا اذا تعذر الدخول.
  5. اذا ظهرت بدلا منها شاشة خطأ فادح، انتقل لتشخيص سجل PHP والاضافة التي كانت قيد التحديث.

لا تحذف ملفات تبدأ بنقطة بشكل عشوائي؛ ملفات مثل .htaccess لها وظيفة مختلفة، وحذفها ممكن يعطل الروابط او اعدادات الحماية.

كيف نقلل احتمال تكرار المشكلة؟

  • حدث الاضافات على دفعات صغيرة بدل تحديث كل شيء مرة واحدة.
  • خذ نسخة احتياطية قابلة للاستعادة قبل تحديثات ووردبريس والقالب والاضافات المهمة.
  • نفذ التحديثات الكبيرة على نسخة تجريبية اولا.
  • لا تغلق تبويب التحديث ولا تقطع الاتصال اثناء نسخ الملفات.
  • راقب مساحة القرص وحدود PHP وصلاحيات الكتابة في الاستضافة.

الخلاصة من المختبر

في تجربتنا وجود ملف صيانة حديث كان كافيا لتعطيل الواجهة بحالة 503، وحذفه أعادها الى 200 مباشرة. الحل الصحيح هو حذف .maintenance من جذر ووردبريس بعد التأكد ان التحديث توقف، وبعدها فحص التحديث نفسه حتى ما نترك اضافة بنسخة ناقصة.

اخترنا التجربة بعد ملاحظة تكرار المشكلة في مجتمعات ووردبريس، ومنها نقاش عن تكرار تعليق وضع الصيانة عند تحديث الاضافات. النقاش ساعدنا نحدد السؤال، لكن تفسير العشر دقائق وكود 503 وطريقة الملف اعتمدنا فيها على توثيق ووردبريس الرسمي وعلى القياس المحلي الموضح بالصور.