حل مشكلة تعليق وضع الصيانة في Nextcloud مع OCC

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

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

ما المقصود بوضع الصيانة؟

يُعطّل وضع الصيانة في Nextcloud وصول المستخدمين العاديين أثناء قيام المسؤول بإجراء عمليات مثل الترقية أو النسخ الاحتياطي. وهو وضع شامل للخادم، لذا قد يرى المستخدمون إشعار صيانة حتى عندما يكون خادم الويب نفسه قيد التشغيل. يوثّق دليل إدارة Nextcloud الحالي أمر OCC لتفعيل هذا الوضع أو تعطيله، ويشير إلى أنه قد يتعين على المستخدمين تحديث متصفحهم بعد إيقاف تشغيله.

بالنسبة للمكتب التوضيحي، لا تكفي صفحة الصيانة وحدها لإعلام المسؤول ما إذا كانت الترقية قد اكتملت. بل عليه الاستعلام من Nextcloud نفسه قبل تغيير الوضع.

الخطوة 1: تأكيد نوع التثبيت ومسار OCC

أمثلة الأوامر هنا خاصة بتثبيت Nextcloud التقليدي القائم على الأرشيف على نظام Ubuntu، مع وجود الكود في مجلد معين /var/www/nextcloudواسم حساب خادم الويب هو www-data. توثق Nextcloud أن هذا الملف occموجود في دليل التثبيت ويجب تشغيله كمستخدم HTTP؛ في Debian وUbuntu يكون هذا المستخدم عادةً هو www-data.

بالنسبة لهذا التخطيط القياسي، أدخل دليل التثبيت:

cd /var/www/nextcloud

إذا كانت ملفات Nextcloud موجودة في مكان آخر، فاستخدم المسار الفعلي. تستخدم Snap وDocker والأجهزة والاستضافة المُدارة أدوات أوامر أو تخطيطات نظام ملفات مختلفة. لا تُشغّل أمر المضيف على تثبيت حاوية، ولا تفترض أن مسار الأرشيف ينطبق على عمليات النشر هذه. اتبع تعليمات التحديث الخاصة بطريقة التثبيت لديك، كما هو موضح في دليل ترقية Nextcloud الرسمي .

في مثال المكتب، يقوم المسؤول بفحص ملاحظات النشر ويؤكد أن هذا تثبيت أرشيفي قبل تشغيل OCC.

الخطوة الثانية: تحقق من حالة Nextcloud قبل تعطيل الصيانة

قم بتشغيل OCC باستخدام حساب خادم الويب بحيث تحتفظ الملفات والتكوين بملكية متوقعة:

sudo -E -u www-data php occ status

انظر إلى الحقلين maintenanceو needsDbUpgrade. تدعم الإصدارات الحالية أيضًا رمز حالة الخروج:

sudo -E -u www-data php occ status -e
echo $?

تُعدّ رموز الخروج الموثقة مفيدة عند فحص المخرجات بواسطة برنامج نصي: 0يشير الرمز إلى التشغيل العادي، 1ويعني تفعيل وضع الصيانة، ويعني 2أن occ upgradeالأمر مطلوب. يجب أيضًا مراجعة مخرجات الحالة العادية؛ لا تعتمد على رمز الخروج وحده لتحديد ما إذا كان يجب إعادة فتح الموقع أم لا.

بالنسبة لخادم المكتب الافتراضي، إذا needsDbUpgradeكانت القيمة صحيحة أو status -eتم إرجاعها 2، فإن الخطوة التالية الصحيحة هي إكمال الترقية، وليس مجرد إيقاف تشغيل وضع الصيانة.

الخطوة 3: أكمل عملية ترقية غير مكتملة أولاً

إذا تم تثبيت تحديث لبرنامج Nextcloud عمدًا، وأفاد مركز التحكم في السحابة (OCC) بضرورة ترقية قاعدة البيانات، فقم بأخذ نسخة احتياطية حديثة من قاعدة البيانات والإعدادات والبيانات أو التحقق منها قبل المتابعة. ثم قم بتشغيل الأمر الموثق من مجلد التثبيت.

sudo -E -u www-data php occ upgrade

اقرأ مخرجات الأمر وانتظر حتى يكتمل. لا تقاطع العملية لأن صفحة الويب قد تبدو دون تغيير أثناء تشغيل التحديثات. قد يُبقي المُحدِّث المُدمج وضع الصيانة مُفعَّلاً عند استبدال الكود أو occ upgradeفشله. إذا لم يُكمل المُحدِّث استبدال الكود، فراجع سجلّه واستأنف عملية التحديث المُناسبة لتثبيتك بدلاً من الانتقال مباشرةً إلى الخطوة التالية . تشرح تعليمات المُحدِّث المُدمج فيmaintenance:mode --off Nextcloud مراحل التحديث وتُشير إلى سجل المُحدِّث كمورد تشخيصي.

في هذا المثال، لن يقوم مسؤول المكتب بتشغيل الأمر إلا occ upgradeإذا أشارت الحالة إلى أن عملية ترحيل قاعدة البيانات لا تزال معلقة وأن الكود الجديد المتوقع موجود بالفعل. إذا أبلغ الأمر عن خطأ، فسيبقي الخادم غير متاح ويتحقق من هذا الخطأ أولاً.

الخطوة 4: قم بإيقاف تشغيل وضع الصيانة باستخدام OCC

عند اكتمال الترقية وعدم ظهور رسالة تفيد بضرورة ترقية قاعدة البيانات، قم بتعطيل وضع الصيانة باستخدام الأمر المدمج في Nextcloud:

sudo -E -u www-data php occ maintenance:mode --off

يُشير تنفيذ الأمر بنجاح إلى تعطيل وضع الصيانة. هذه هي الطريقة المعتمدة لتغيير الوضع في التثبيت القياسي؛ كما أنها تُبقي تغيير الحالة ضمن واجهة أوامر Nextcloud نفسها بدلاً من الاعتماد على التعديلات اليدوية config.php.

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

الخطوة 5: التحقق من الحالة وواجهة الويب

تحقق من الحالة مرة أخرى:

sudo -E -u www-data php occ status
sudo -E -u www-data php occ status -e

لضمان تثبيت سلس، توقع maintenance: falseظهور needsDbUpgrade: falseرمز خطأ عادي 0. ثم افتح الموقع من نافذة متصفح خاصة جديدة وسجّل الدخول باستخدام حساب مدير النظام. اطلب من أحد المستخدمين العاديين تحديث متصفحه قبل افتراض أن جلسته لا تزال محظورة.

في السيناريو التوضيحي، يعني النجاح أن تتفق حالة مركز التحكم في العمليات (OCC) وصفحة الويب على أن الخادم عاد للعمل. ولا يدّعي المثال الافتراضي أنه تم تنفيذ أي أمر فعليًا أو أنه تم إصلاح خادم حقيقي.

إذا بقيت صفحة الصيانة

يقول مكتب مراقبة العملة إن الصيانة غير صحيحة

تأكد من تشغيل OCC على نفس التثبيت الذي يُقدّم عنوان URL. هذا الأمر مهم في حالة التوزيع المتوازن للأحمال، أو مضيف Docker الذي يحتوي على حاويات متعددة، أو خادم يحتوي على مجلدات Nextcloud قديمة وجديدة جنبًا إلى جنب. تحقق من مسار جذر المستند أو مسار الحاوية الفعلي، واستعلم عن المثيل الذي يقف وراء عنوان URL المتأثر. إذا كان لكل عقدة ويب إعداداتها الخاصة، فتأكد من أن جميع العقد تشترك في الإعدادات وقاعدة البيانات المقصودة.

إذا أبلغت النسخة الصحيحة عن تعطيل الصيانة، قارن الصفحة من مصدر الخادم مع عنوان URL العام. قد يكون خادم وكيل عكسي أو ذاكرة تخزين مؤقتة يعرض استجابة قديمة. امسح ذاكرة التخزين المؤقتة أو تجاوزها فقط بعد التحقق من الطبقة التي أعادت صفحة الصيانة.

لا يمكن تشغيل OCC أو يُرجع خطأً في PHP

تأكد من أن الأمر يستخدم إصدار PHP CLI والملحقات المطلوبة المتوافقة مع تثبيت الويب. تشير Nextcloud إلى أن APCu مُعطّل افتراضيًا لـ PHP CLI، وقد يتسبب في أخطاء OCC عند تهيئة APCu كذاكرة تخزين مؤقت محلية. يوضح دليل المستخدم كيفية تفعيله apc.enable_cliفي إعدادات PHP CLI أو إضافته --define apc.enable_cli=1إلى أمر PHP عند الحاجة.

sudo -E -u www-data php --define apc.enable_cli=1 occ status

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

لا يزال تحديث قاعدة البيانات مطلوبًا

لا تقم بتعطيل علامة الصيانة لإخفاء هذه الحالة. أعد فحص مخرجات المُحدِّث وسجلاته، وتأكد من تثبيت إصدار Nextcloud الصحيح، وأكمل إجراء الترقية المُعتمد لنوع التثبيت لديك. راجع وثائق مرجع أوامر نظام OCC والصيانةmaintenance:mode الرسمية ، statusبالإضافة إلى ترقية سطر الأوامر.

حافظ على نافذة الصيانة تحت السيطرة

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

بالنسبة للمكتب الافتراضي، يكون القرار الآمن واضحًا: تحقق من صحة التثبيت، وافحص الحالة، وأكمل أي ترقية مطلوبة، ثم شغّل maintenance:mode --offوتحقق من كلٍّ من OCC والمتصفح. إذا تعذّر إكمال الترقية بنجاح، فاترك وضع الصيانة مُفعّلاً، واستكشف المشكلة من سجل المُحدِّث أو إجراء الاسترداد الخاص بالتثبيت.

اترك تعليقاً

حل مشكلة تعليق وضع الصيانة في Nextcloud مع OCC

حل مشكلة تعليق وضع الصيانة في Nextcloud مع OCC

قم بمسح صفحة صيانة Nextcloud العالقة بأمان باستخدام OCC، وتحقق مما إذا كانت الترقية غير مكتملة، وتأكد من أن المثيل جاهز للمستخدمين.

إصلاح مشكلة تأجيل البريد الصادر في زيمبرا: "انتهت مهلة الاتصال بالمنفذ 25"

إصلاح مشكلة تأجيل البريد الصادر في زيمبرا: "انتهت مهلة الاتصال بالمنفذ 25"

قم بتشخيص أخطاء تأجيل البريد الصادر في Zimbra على المنفذ 25. تحقق من قائمة الانتظار، وMX DNS، وجدران الحماية، وحظر الموفر، وقم بتكوين مرحل SMTP معتمد.

كيفية إعداد خادم مصفوفة على Raspberry Pi 4 باستخدام Conduit

كيفية إعداد خادم مصفوفة على Raspberry Pi 4 باستخدام Conduit

قم بإعداد خادم منزلي خفيف الوزن من نوع Matrix على Raspberry Pi 4 باستخدام Conduit و Docker و NGINX و HTTPS وعناصر التحكم في التسجيل والاتحاد والفحوصات.

كيفية تهيئة Jitsi Videobridge لإعداد خادم متعدد قابل للتوسع

كيفية تهيئة Jitsi Videobridge لإعداد خادم متعدد قابل للتوسع

أضف خوادم Jitsi Videobridge إلى نشر Jitsi Meet مشترك، وقم بتكوين التسجيل والوصول إلى جدار الحماية، وتحقق من اختيار الجسر، وتعرف على متى تكون هناك حاجة إلى Octo.

كيفية تثبيت شهادة SSL تجارية على خادم Zimbra

كيفية تثبيت شهادة SSL تجارية على خادم Zimbra

قم بتثبيت شهادة SSL تجارية على Zimbra بأمان: أنشئ طلب توقيع الشهادة (CSR)، وقم ببناء سلسلة CA، وتحقق من المفتاح والشهادة، وقم بنشرها، وأعد تشغيل الخدمات، وتأكد من HTTPS.

كيفية تخصيص واجهة وشعار BigBlueButton

كيفية تخصيص واجهة وشعار BigBlueButton

قم بتغيير شعار BigBlueButton الافتراضي، وأضف شعارًا إلى الاجتماعات الفردية، وافهم متى تتطلب العلامة التجارية الأوسع للواجهة إصدارًا مخصصًا للعميل.

كيفية مسح سجلات تدقيق Zimbra لتحرير مساحة القرص بأمان

كيفية مسح سجلات تدقيق Zimbra لتحرير مساحة القرص بأمان

تعرف على كيفية تحديد سجلات التدقيق القديمة لـ Zimbra وأرشفتها وضغطها وإزالتها، ومتى يجب تجنب اقتطاع ملف audit.log، وكيفية التحقق من استعادة مساحة القرص والتسجيل بشكل صحيح.

إصلاح مشكلة "فشل الاتصال بخادم التخزين" في برنامج Kopano Dagent

إصلاح مشكلة "فشل الاتصال بخادم التخزين" في برنامج Kopano Dagent

قم باستكشاف أخطاء اتصال خادم تخزين Kopano dagent وإصلاحها عن طريق التحقق من حالة الخادم، ومقبس الخادم، وأذونات مقبس Unix، والمستمعين عن بعد، واختبارات التسليم المتحكم بها.

كيفية إصلاح خطأ "انقضاء مهلة آلية القفل" في قفل الملفات في ownCloud

كيفية إصلاح خطأ "انقضاء مهلة آلية القفل" في قفل الملفات في ownCloud

قم بإصلاح أخطاء مهلة قفل الملفات في ownCloud عن طريق تحديد الأقفال المعاملاتية، ونقل تخزين القفل إلى Redis، والتحقق من المجموعات، وإعادة الاختبار بأمان.

كيفية إصلاح مشكلة نفاد ذاكرة برنامج Matrix Synapse أثناء المزامنة

كيفية إصلاح مشكلة نفاد ذاكرة برنامج Matrix Synapse أثناء المزامنة

قم باستكشاف أخطاء Matrix Synapse المتعلقة بـ OOM أثناء /sync عن طريق فحص ضغط الذاكرة، وضبط ذاكرة التخزين المؤقت بعناية، وعزل المزامنة الأولية، ومراقبة العمال.