قم بإصلاح وضع الصيانة العالق في Nextcloud بأمان باستخدام OCC
استخدم OCC لاستعادة الوصول إلى Nextcloud، والتحقق من حالة ترحيل قاعدة البيانات، واختيار الأمر الصحيح لعمليات تثبيت الأرشيف أو Docker أو Snap.
إذا استمر ظهور "وضع الصيانة" في Nextcloud بعد التحديث أو مهمة الصيانة، فتحقق أولاً من اكتمال ترقية قاعدة البيانات. عند occ statusظهور التقارير needsDbUpgrade: false، شغّل البرنامج occ maintenance:mode --offكمستخدم خادم الويب في تثبيت Nextcloud الصحيح؛ وإذا ظهرت التقارير true، فأكمل العملية occ upgradeقبل إعادة فتح الموقع.
يؤدي تعطيل هذه الخاصية إلى استعادة بيانات تسجيل الدخول، ولكنه لا يُصلح عملية الترقية الفاشلة. الهدف هو إعادة تشغيل النظام مع التحقق من كلٍّ من حالة الصيانة وحالة الترقية.
اتصل بالمضيف أو الحاوية التي تُقدّم عنوان 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
لتثبيت ملف مضغوط أو حزمة، قم بتشغيل الأمر من الدليل الذي يحتوي على occالبرنامج النصي الصحيح:
sudo -E -u www-data php occ maintenance:mode --off
يجب أن يُشير الأمر إلى تعطيل وضع الصيانة. --offيُغيّر هذا الخيار حالة الصيانة، ولكنه لا يُشغّل عمليات نقل البيانات، ولا يُصلح الأذونات، ولا يُلغي عملية استبدال الملفات المُقاطعة.

استخدم الغلاف المتوافق مع تثبيتك. بالنسبة لصورة 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

بالنسبة لـ Nextcloud Snap، استخدم غلاف OCC الخاص به على جانب المضيف بدلاً من الدخول إلى الدلائل الداخلية لـ snap:
sudo nextcloud.occ maintenance:mode --off
يشير مشروع Snap إلى أنه /snap/bin/nextcloud.occقد يكون مطلوبًا إذا لم يكن هذا المجلد موجودًا في مسار النظام (PATH). راجع تعليمات وضع الصيانة الخاصة بـ Snap . يوثق ملف README الخاص بصورة Docker الرسمية لـ Nextcloud نمط أوامر الحاوية.
عندما تُرسل تقارير الحالة needsDbUpgrade: true، يُشير Nextcloud إلى عدم تزامن عملية ترحيل الكود وقاعدة البيانات. يحدث هذا عادةً بعد أن يقوم مُحدِّث بتحديث الكود دون اكتمال مرحلة الترحيل. في هذه الحالة، قد تتوفر مجموعة محدودة من أوامر OCC، وقد يُترك وضع الصيانة مُفعَّلاً عمدًا لمنع المستخدمين من الوصول إلى النظام أثناء الترقية.
استخدم مسار الترقية المناسب لنوع تثبيتك، وراجع خطأ المُحدِّث قبل المتابعة. بالنسبة للتثبيت القياسي القائم على الأرشيف، بعد التأكد من وجود إصدار كود Nextcloud المطلوب، وأخذ نسخة احتياطية جديدة من قاعدة البيانات وملفات/إعدادات النظام (إن لم تكن لديك نسخة احتياطية بالفعل)، قم بتشغيل الأمر التالي:
sudo -E -u www-data php occ upgrade
دع الأمر يكتمل ويحل أي عطل مُبلغ عنه. لا تُفعّل وضع الصيانة بشكل متكرر لتجاوز خطأ الترحيل. توضح وثائق ترقية Nextcloud أن ترحيل قاعدة البيانات يتبع استبدال كود الخادم، وتوصي بعمل نسخة احتياطية جديدة قبل الترقية. قد يكون لـ Docker وSnap والحزم المُدارة إجراءات ترقية خاصة بها؛ استخدم تلك التعليمات إذا كانت تختلف عن المثال المُستند إلى الأرشيف.
بعد اكتمال الترقية بنجاح وعدم ظهور أي إشارة إلى ترقية قاعدة البيانات المعلقة، نفّذ maintenance:mode --offالأمر المناسب المذكور أعلاه. تجنّب تعديل config.phpقاعدة البيانات أو استخدام تحديث مباشر لها كاختصار. إذا تعذّر على OCC كتابة الإعداد، فتأكد من اختيارك للتثبيت الصحيح ومستخدم HTTP الصحيح، وتحقق من أي خطأ في سياسة التكوين للقراءة فقط أو في أذونات نظام الملفات قبل تغيير الأذونات.
أعد تشغيل الحالة باستخدام نفس مسار التثبيت والحاوية والمستخدم:
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.
استخدم OCC لاستعادة الوصول إلى Nextcloud، والتحقق من حالة ترحيل قاعدة البيانات، واختيار الأمر الصحيح لعمليات تثبيت الأرشيف أو Docker أو Snap.
قم بتوصيل Nextcloud بـ LDAP أو Active Directory، وقم بتقييد الوصول باستخدام عوامل تصفية المستخدم والمجموعة، وتحقق من المصادقة الآمنة قبل النشر.
قم بتمكين موفر المصادقة الثنائية المدعوم، وقم بإعداد استعادة الحساب، ثم اطلب المصادقة الثنائية للجميع أو لمجموعات Nextcloud المحددة.
تأمين الملفات التي تم تحريرها في Collabora CODE عن طريق تشفير طبقة التخزين، وحماية البيانات المؤقتة، والتحقق من التشفير والاسترداد.
تحقق من بنية جهازك المضيف، وتأكد من أن علامة CODE تنشر ARM64، وقم بإزالة إعدادات AMD64 الإجبارية، وافصل أخطاء الصورة عن مشكلات الأذونات أو الذاكرة.
قم بإعداد اتصال WOPI بين Collabora Online و ownCloud Infinite Scale، وقم بتكوين عناوين URL الصحيحة للخدمة، وتحقق من حفظ تعديلات المستند.
منع تصدير المستندات في Collabora Online CODE عن طريق تعيين إذن WOPI DisableExport، ثم التحقق من أن المضيف والمحرر يفرضان ذلك.
قم بتكوين إنهاء Nginx TLS، ومسارات Collabora، ورؤوس WebSocket، ثم اختبر نقاط النهاية العامة قبل فتح المستندات الحقيقية.
تتبع انقطاع اتصال CODE لمدة 10 دقائق إلى الوكيل أو موازن التحميل أو مسار WebSocket، ثم قم بتصحيح المهلة الزمنية وتحقق من بقاء الجلسة متصلة.
قم بتثبيت مخطط Collabora Helm الرسمي، وقم بتكوين الوصول إلى WOPI وتقارب الدخول، وتحقق من النشر دون أخطاء الإعداد الشائعة.