قم بإصلاح وضع الصيانة العالق في Nextcloud بأمان باستخدام OCC

إذا استمر ظهور "وضع الصيانة" في Nextcloud بعد التحديث أو مهمة الصيانة، فتحقق أولاً من اكتمال ترقية قاعدة البيانات. عند occ statusظهور التقارير needsDbUpgrade: false، شغّل البرنامج occ maintenance:mode --offكمستخدم خادم الويب في تثبيت Nextcloud الصحيح؛ وإذا ظهرت التقارير true، فأكمل العملية occ upgradeقبل إعادة فتح الموقع.

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

1. تحقق من الحالة قبل تغييرها

اتصل بالمضيف أو الحاوية التي تُقدّم عنوان URL المتأثر لـ Nextcloud. في حالة التثبيت اليدوي على نظام Linux، انتقل إلى دليل Nextcloud (غالبًا ما يكون /var/www/nextcloud) وافحص الحالة كمستخدم HTTP.

cd /var/www/nextcloud
sudo -E -u www-data php occ status

ابحث عن `<input type="support">` و`<input type="support">` maintenance. needsDbUpgradeالحالة الآمنة لتعطيل وضع الصيانة هي maintenance: trueعندما needsDbUpgrade: falseتكون قيمة `<input type="support">` هي `<input type="support">`. إذا needsDbUpgradeكانت قيمة `<input type="support">` هي `<input type="support">`، فلا تقم بتعطيل وضع الصيانة بعد.

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

يتطلب Nextcloud تشغيل OCC كمستخدم HTTP لضمان ثبات ملكية الملفات. في Debian أو Ubuntu، يكون هذا المستخدم عادةً هو المستخدم `/user` ؛ أما في التوزيعات الأخرى ، www-dataفقد يُستخدم `/ user` أو `/ user` أو `/user`. تحقق من حساب الخدمة في نظامك قبل استبدال المستخدم في أي أمر. توضح وثائق Nextcloud OCC الحالية اختلافات المستخدمين وأمر الحالة.apachehttpwwwrun

2. تعطيل وضع الصيانة باستخدام OCC

لتثبيت ملف مضغوط أو حزمة، قم بتشغيل الأمر من الدليل الذي يحتوي على occالبرنامج النصي الصحيح:

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

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

مثال توضيحي لأمر طرفي: sudo -E -u www-data php occ maintenance:mode --off
هذا هو أمر OCC للتثبيت القياسي عند اكتمال الترقية وتشغيل الأمر على دليل Nextcloud النشط.

استخدم الغلاف المتوافق مع تثبيتك. بالنسبة لصورة Docker الرسمية لـ Nextcloud، توثق وثائق المشروع كلاً docker execمن Docker Compose وأمثلة Docker Compose. استبدل اسم الحاوية أو الخدمة النموذجية باسمك.

# Docker Compose; "app" is an example service name
docker compose exec --user www-data app php occ maintenance:mode --off

# Docker; replace CONTAINER_ID with the Nextcloud container
docker exec -it --user www-data CONTAINER_ID php occ maintenance:mode --off
مثال توضيحي لأمر Docker Compose لتعطيل وضع الصيانة في Nextcloud باسم www-data
في Docker Compose، قم بتشغيل OCC داخل خدمة Nextcloud باسم www-data؛ استخدم اسم خدمة Compose الخاص بك بدلاً من اسم المثال app.

بالنسبة لـ Nextcloud Snap، استخدم غلاف OCC الخاص به على جانب المضيف بدلاً من الدخول إلى الدلائل الداخلية لـ snap:

sudo nextcloud.occ maintenance:mode --off

يشير مشروع Snap إلى أنه /snap/bin/nextcloud.occقد يكون مطلوبًا إذا لم يكن هذا المجلد موجودًا في مسار النظام (PATH). راجع تعليمات وضع الصيانة الخاصة بـ Snap . يوثق ملف README الخاص بصورة Docker الرسمية لـ Nextcloud نمط أوامر الحاوية.

3. إذا كانت هناك ترقية لا تزال معلقة، فأكملها أولاً

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

استخدم مسار الترقية المناسب لنوع تثبيتك، وراجع خطأ المُحدِّث قبل المتابعة. بالنسبة للتثبيت القياسي القائم على الأرشيف، بعد التأكد من وجود إصدار كود Nextcloud المطلوب، وأخذ نسخة احتياطية جديدة من قاعدة البيانات وملفات/إعدادات النظام (إن لم تكن لديك نسخة احتياطية بالفعل)، قم بتشغيل الأمر التالي:

sudo -E -u www-data php occ upgrade

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

بعد اكتمال الترقية بنجاح وعدم ظهور أي إشارة إلى ترقية قاعدة البيانات المعلقة، نفّذ maintenance:mode --offالأمر المناسب المذكور أعلاه. تجنّب تعديل config.phpقاعدة البيانات أو استخدام تحديث مباشر لها كاختصار. إذا تعذّر على OCC كتابة الإعداد، فتأكد من اختيارك للتثبيت الصحيح ومستخدم HTTP الصحيح، وتحقق من أي خطأ في سياسة التكوين للقراءة فقط أو في أذونات نظام الملفات قبل تغيير الأذونات.

4. تحقق من العلم والموقع المباشر

أعد تشغيل الحالة باستخدام نفس مسار التثبيت والحاوية والمستخدم:

sudo -E -u www-data php occ status

تأكد من كليهما maintenance: false. needsDbUpgrade: falseفي Docker أو Snap، كرر الفحص باستخدام نفس الغلاف المستخدم لتعطيل العلامة. يوثق أمر حالة Nextcloud هذه الحقول؛ وصيغته المقروءة آليًا هي occ status --output=json_pretty.

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

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

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

اترك تعليقاً

قم بإصلاح وضع الصيانة العالق في Nextcloud بأمان باستخدام OCC

قم بإصلاح وضع الصيانة العالق في Nextcloud بأمان باستخدام OCC

استخدم OCC لاستعادة الوصول إلى Nextcloud، والتحقق من حالة ترحيل قاعدة البيانات، واختيار الأمر الصحيح لعمليات تثبيت الأرشيف أو Docker أو Snap.

إعداد تسجيل الدخول إلى Nextcloud LDAP و Active Directory

قم بتوصيل Nextcloud بـ LDAP أو Active Directory، وقم بتقييد الوصول باستخدام عوامل تصفية المستخدم والمجموعة، وتحقق من المصادقة الآمنة قبل النشر.

اشتراط المصادقة الثنائية لمستخدمي Nextcloud

قم بتمكين موفر المصادقة الثنائية المدعوم، وقم بإعداد استعادة الحساب، ثم اطلب المصادقة الثنائية للجميع أو لمجموعات Nextcloud المحددة.

حماية مستندات Collabora CODE المخزنة باستخدام تشفير التخزين

تأمين الملفات التي تم تحريرها في Collabora CODE عن طريق تشفير طبقة التخزين، وحماية البيانات المؤقتة، والتحقق من التشفير والاسترداد.

تشغيل كود Collabora على معالج ARM64 باستخدام الصورة الصحيحة

تشغيل كود Collabora على معالج ARM64 باستخدام الصورة الصحيحة

تحقق من بنية جهازك المضيف، وتأكد من أن علامة CODE تنشر ARM64، وقم بإزالة إعدادات AMD64 الإجبارية، وافصل أخطاء الصورة عن مشكلات الأذونات أو الذاكرة.

ربط Collabora Online بـ ownCloud Infinite Scale

قم بإعداد اتصال WOPI بين Collabora Online و ownCloud Infinite Scale، وقم بتكوين عناوين URL الصحيحة للخدمة، وتحقق من حفظ تعديلات المستند.

تصدير ملفات الكتل في Collabora CODE من خلال WOPI

منع تصدير المستندات في Collabora Online CODE عن طريق تعيين إذن WOPI DisableExport، ثم التحقق من أن المضيف والمحرر يفرضان ذلك.

قم بتثبيت Collabora خلف Nginx دون التأثير على WebSockets

قم بتثبيت Collabora خلف Nginx دون التأثير على WebSockets

قم بتكوين إنهاء Nginx TLS، ومسارات Collabora، ورؤوس WebSocket، ثم اختبر نقاط النهاية العامة قبل فتح المستندات الحقيقية.

منع انتهاء جلسات تحرير التعليمات البرمجية بعد 10 دقائق

تتبع انقطاع اتصال CODE لمدة 10 دقائق إلى الوكيل أو موازن التحميل أو مسار WebSocket، ثم قم بتصحيح المهلة الزمنية وتحقق من بقاء الجلسة متصلة.

انشر كود Collabora على Kubernetes باستخدام Helm

قم بتثبيت مخطط Collabora Helm الرسمي، وقم بتكوين الوصول إلى WOPI وتقارب الدخول، وتحقق من النشر دون أخطاء الإعداد الشائعة.