قم بتشغيل Nextcloud Cron تلقائيًا باستخدام مؤقت Systemd
تحقق من وضع cron الخاص بـ Nextcloud، وقم بإصلاح خدمة systemd والمؤقت الخاص به، وتأكد من تشغيل المهام الخلفية بعد بدء التشغيل وكل خمس دقائق.
عندما تُشير صفحة إدارة Nextcloud إلى عدم تشغيل مهامها الخلفية مؤخرًا، فقد تتأخر عمليات التنظيف والإشعارات والمهام المجدولة الأخرى. في خادم systemd، يتمثل الحل عادةً في تشغيل Nextcloud cron.phpباستخدام حساب خادم الويب من خدمة systemd، ثم جدولة تلك الخدمة مع تفعيل مؤقت. يُقدم دليل إدارة Nextcloud الحالي مثالًا لوحدتين؛ يجب أن تتطابق المسارات وحساب الخدمة مع تثبيتك.
تُشغَّل مهام Nextcloud في الخلفية عند cron.phpاستدعائها. تُحدِّد خدمة systemd الأمر المراد تشغيله؛ ويقوم مؤقت بتشغيل هذه الخدمة وفقًا لجدول زمني. إذا كانت الخدمة تعمل يدويًا ولكن المؤقت لا يعمل، فركز على تفعيل المؤقت. أما إذا عمل المؤقت ولكن الخدمة فشلت، فافحص الأمر وبيئة PHP والأذونات.
تأكد من صحة مجلد Nextcloud ومستخدم HTTP قبل إجراء أي تعديلات. يفترض هذا المثال استخدام حسابي `nextcloud.co.uk` /var/www/nextcloudو`nextcloud.co.uk` www-data، وهما شائعان في Debian وUbuntu. قد يكون الحساب `nextcloud.co.uk` wwwrunأو apache`nextcloud.co.uk` أو حساب مستخدم آخر على أنظمة مختلفة. يتطلب Nextcloud تشغيل مهام سطر الأوامر الخاصة به كمستخدم HTTP لضمان ثبات ملكية الملفات. راجع توثيق Nextcloud occ .
اختبر نفس ملف PHP القابل للتنفيذ وبرنامج cron النصي الذي تنوي أن يستخدمه systemd:
sudo -u www-data /usr/bin/php -f /var/www/nextcloud/cron.php
استبدل اسم الحساب ومسار PHP ومسار Nextcloud الخاص بمضيفك. إذا أبلغ الأمر عن خطأ في PHP، أو امتداد مفقود، أو مشكلة في الأذونات، أو وضع الصيانة، أو فشل في الاتصال بقاعدة البيانات، فقم بحل هذه المشكلة أولاً؛ إذ لا يمكن للمؤقت إصلاح أمر فاشل.
افتح إعدادات الإدارة ← الإعدادات الأساسية ← مهام الخلفية، ثم حدد Cron إذا لم يكن محددًا بالفعل. يمكنك أيضًا تشغيل هذا الأمر من مجلد Nextcloud:
cd /var/www/nextcloud
sudo -E -u www-data php occ background:cron
تُشير Nextcloud إلى أن اختيار Cron في إعدادات المسؤول ليس شرطًا أساسيًا عند cron.phpتشغيل البرنامج النصي من سطر الأوامر، لأن البرنامج النصي يُحدد الوضع تلقائيًا. يُوضح تحديده صراحةً وضع الإنتاج المقصود. تُوصي Nextcloud باستخدام Cron النظامي للإنتاج؛ كما تُوثّق وثائق مهام الخلفية مؤقتات systemd كبديل لجدولة المهام.
أنشئ أو حدّث الملف /etc/systemd/system/nextcloudcron.serviceبالمحتويات التالية. استخدم المسار الكامل لـ PHP حتى لا يعتمد systemd على shell التفاعلي PATH.
[Unit]
Description=Nextcloud cron.php job
[Service]
User=www-data
ExecCondition=/usr/bin/php -f /var/www/nextcloud/occ status -e
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php
KillMode=process
غيّر Userإلى حساب خادم الويب، ثمّ حدّد كلا المسارين لموقعي PHP وNextcloud المتطابقين. يتحقق الشرط من أن المثيل يعمل بشكل طبيعي قبل تشغيل المهمة. في حال فشل الشرط، قد يتجاوز systemd الخدمة؛ لذا تحقق مما إذا كان Nextcloud في وضع الصيانة، واطلع على سجل النظام قبل إزالة الشرط أو تغييره. احتفظ بالشرط KillMode=process، كما هو الحال في مثال Nextcloud، حتى تتمكن البرامج الخارجية التي يبدأها cron من الاستمرار بعد انتهاء عملية cron. لا تحتاج وحدة الخدمة إلى [Install]قسم.
إنشاء /etc/systemd/system/nextcloudcron.timer. يبدأ هذا الجدول بعد خمس دقائق من بدء التشغيل، ثم ينتظر خمس دقائق بعد كل تفعيل للخدمة:
[Unit]
Description=Run Nextcloud cron.php every 5 minutes
[Timer]
OnBootSec=5 min
OnUnitActiveSec=5 min
Unit=nextcloudcron.service
[Install]
WantedBy=timers.target
أعد تحميل systemd حتى يتمكن من قراءة ملفات الوحدة، ثم قم بتمكين المؤقت وبدء تشغيله في أمر واحد:
sudo systemctl daemon-reload
sudo systemctl enable --now nextcloudcron.timer
يؤدي التفعيل إلى بدء المؤقت عند إعادة تشغيل النظام لاحقًا؛ --nowيبدأه فورًا. لا تُفعّل الخدمة نفسها كما لو كانت مؤقتًا دوريًا. المؤقت هو الوحدة التي تنتمي إلى timers.target. يشرح دليل Nextcloud الحالي إعدادات الفاصل الزمني هذه وأمر التفعيل المطلوب؛ تضمنت الإصدارات القديمة من الدليل قسمًا قديمًا لتثبيت الخدمة، لذا اتبع مثال الوحدة الحالي بدلًا من ذلك.
تحقق من حالة المؤقت وموعد التشغيل التالي:
systemctl status nextcloudcron.timer
systemctl list-timers nextcloudcron.timer
يجب أن يظهر المؤقت في حالة الانتظار أو النشاط، ويجب أن تُظهر القائمة وقت التفعيل التالي. ثم افحص آخر عملية تشغيل للخدمة:
systemctl status nextcloudcron.service
journalctl -u nextcloudcron.service --since today
قد يبقى المؤقت نشطًا حتى عند فشل تشغيل كل خدمة، لذا راجع كلا الوحدتين. إذا كانت الخدمة مفقودة أو رفض systemd الملف، فقم بتشغيل الأمر systemd-analyze verify /etc/systemd/system/nextcloudcron.service /etc/systemd/system/nextcloudcron.timer، وصحح مشكلة بناء الجملة أو المسار المُبلغ عنها، ثم أعد تحميل systemd. إذا خرجت الخدمة دون نجاح، فغالبًا ما يُشير مُخرج السجل إلى مسار PHP غير صالح، أو مُستخدم خاطئ، أو حالة فشل، أو خطأ في وقت تشغيل Nextcloud. إذا لم يكن للمؤقت تشغيل تالٍ، فتحقق من اسم ملف المؤقت بدقة، وقم بتشغيل الأمر daemon-reload، وتأكد من تفعيله باستخدام الأمر systemctl is-enabled nextcloudcron.timer.
بعد تفعيل المؤقت التالي، تحقق من حالة مهام Nextcloud الخلفية مرة أخرى. يجب أن تُظهر وقت تنفيذ حديث بدلاً من تحذير قديم. إذا أبلغ كل من المؤقت والخدمة عن عمليات تشغيل ناجحة، ولكن صفحة الإدارة لا تزال تبدو قديمة، فتحقق من سجلات المثيل وإصدار PHP المستخدم من قِبل خادم الويب؛ فقد يختلف إصدار PHP المستخدم في سطر الأوامر عن إصدار PHP المستخدم في بيئة تشغيل الويب. يُعالج هذا الإعداد جدولة systemd على مضيف Linux عادي. قد تُدير عمليات التثبيت المُحاوياتية والأجهزة cron من خلال مُشرف الخدمة الخاص بها، لذا استخدم الطريقة المدعومة من تلك المنصة بدلاً من إضافة وحدات مضيفة لا يمكنها الوصول إلى ملفات الحاوية.
تحقق من وضع cron الخاص بـ Nextcloud، وقم بإصلاح خدمة systemd والمؤقت الخاص به، وتأكد من تشغيل المهام الخلفية بعد بدء التشغيل وكل خمس دقائق.
قم بتمكين قفل الملفات الموثوق به في Nextcloud، واختر الواجهة الخلفية المناسبة Redis أو Valkey، وتحقق من إزالة التحذير دون المخاطرة بتغييرات الملفات المتزامنة.
قم بإصلاح نتائج فحص Nextcloud الشائعة من خلال التحديثات الحالية، و HTTPS و HSTS، والثقة الدقيقة في الخادم الوكيل العكسي، وعمليات التحقق من الخادم العام.
قم بتكوين Nextcloud SSE للتخزين الذي يحتاج إليه، وقم بحماية مفاتيح التشفير، وقم بقياس تأثير النقل ووحدة المعالجة المركزية قبل تشفير الملفات الموجودة.
قم بتوصيل خاصية البحث عن الملفات في Nextcloud بـ Elasticsearch، وقم بفهرسة محتويات المستندات، واختر إعدادًا يناسب احتياجات الخادم والأمان لديك.
قم بتكوين Nextcloud لإزالة الملفات المحذوفة بعد فترة احتفاظ محددة، وجدولة مهام الخلفية بشكل موثوق، وتجنب الأوامر التي تقوم بمسح سلة المهملات الخاصة بكل مستخدم.
قم بتشغيل أداة إصلاح OCC الخاصة بـ Nextcloud بأمان، واستعرض تغييرات قاعدة البيانات، وتحقق من سبب استمرار التحذير.
السماح بتحميل ملفات أكبر حجماً عبر متصفح Nextcloud عن طريق ضبط إعدادات PHP أو Nginx أو Apache والتخزين المؤقت والمهلة الزمنية - والتحقق من الحد الذي يمنع الملف.
قم بتعيين حد ذاكرة PHP الذي يستخدمه Nextcloud فعليًا، وأعد تشغيل الخدمة الصحيحة، وتأكد من إعداد 512 ميجابايت في نظرة عامة على المسؤول.
قم بتثبيت حاوية تخزين كائنات متوافقة في Nextcloud باستخدام الواجهة الخلفية S3 الخاصة بها، مع نقطة النهاية الصحيحة، وبيانات الاعتماد، ونطاق الوصول، وخطوات التحقق.