WebGee Docsمركز المساعدة
ووردبريس
ترحيل مجاني وضمان 30 يومًااعرف كيف

منع LiteSpeed من قطع سكربتات PHP الطويلة

استخدم متغيّرَي noabort وnoconntimeout في ‎.htaccess كي تكتمل النسخ الاحتياطية والاستيرادات وWP-Cron بدل أن تُقتَل في منتصفها.

بعض سكربتات PHP تعمل دقائق بحق — نسخ احتياطية كاملة، واستيرادات كبيرة، وإعادة بناء فهارس قواعد البيانات، ومهام WP-Cron. وLiteSpeed يوقف الطلبات الطويلة أو الصامتة افتراضيًا، فقد يقتلها في منتصفها. ينطبق على كل الاستضافة المشتركة والموزِّعة، التي تعمل بـ LiteSpeed.

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

المتغيّريمنع LiteSpeed منيُحتاج حين
noabortقتل PHP حين يُغلَق اتصال الزائريُبدأ السكربت ثم يُترَك، كما يفعل WP-Cron
noconntimeoutإغلاق اتصال لم يُرسل شيئًا منذ مدة طويلةيعمل السكربت طويلًا قبل أن ينتج مخرجات

وكلاهما خاص بـ LiteSpeed ويجب تغليفهما في كتلة IfModule كي تُتجاهَل القواعد على أي خادم ويب آخر.

اضبطهما في ‎.htaccess

أضف هذا إلى ملف .htaccess في الجذر المستنَدي لموقعك:

<IfModule Litespeed>
SetEnvIf Request_URI "(wp-cron|backupbuddy|importbuddy)\.php" noabort noconntimeout
</IfModule>

وذلك يستهدف السكربتات الثلاثة الأكثر تأثرًا. استبدل الأسماء بما يسمّى به سكربتك الطويل.

ولتطبيقه على كل طلب في الموقع بدلًا من ذلك:

<IfModule Litespeed>
SetEnv noabort 1
SetEnv noconntimeout 1
</IfModule>

تطبيق هذا على كل طلب يزيل الحماية التي توقف سكربتًا شاردًا عن استهلاك الموارد إلى ما لا نهاية. وعلى الاستضافة المشتركة يُحسب ذلك على حدود حسابك. استهدف السكربتات المحدّدة التي تحتاجه.

فضّل SetEnv على قواعد إعادة الكتابة

يمكن بلوغ النتيجة نفسها بأعلام إعادة الكتابة:

<IfModule Litespeed>
RewriteEngine On
RewriteRule (wp-cron|backupbuddy|importbuddy)\.php - [E=noabort:1,E=noconntimeout:1]
</IfModule>

واستخدم SetEnv وSetEnvIf بدلًا منها حيثما أمكن. فقواعد إعادة الكتابة حسّاسة لموضعها بالنسبة إلى القواعد الأخرى — وكتلة إعادة الكتابة الخاصة بووردبريس خصوصًا — فالقاعدة الموضوعة بعد كتلة ووردبريس قد لا تُبلَغ أبدًا. أما SetEnv فيمكن وضعه في أي مكان في الملف.

ولا تستخدم النهجين معًا للسكربت نفسه.

حدّ PHP نفسه يظل ساريًا

هذان المتغيّران يتحكّمان في LiteSpeed. ولـ PHP حدّ منفصل، وقد يظل يوقف سكربتًا:

max_execution_time = 300

اضبطه في MultiPHP INI Editor داخل cPanel. راجع إصدارات PHP وإعداداتها.

فإن توقّف سكربت عند وقت ثابت — 30 ثانية أو 60 بالضبط — فذلك حدّ PHP دائمًا تقريبًا لا حدّ LiteSpeed.

قبل أن تلجأ إلى هذا

السكربت الذي يحتاج دقائق عَرَض غالبًا لا متطلَّب.

  • WP-Cron استبداله بمهمة cron حقيقية أفضل من إبقائه حيًا. فـ cron في النظام يستدعي WP-CLI أوثق ولا يعتمد على وصول زائر.
  • نسخ الإضافات الاحتياطية تكتب نسخًا كاملة من الموقع داخل حصة قرصك، ويزيلها تنظيف WebGee. استخدم JetBackup بدلًا منها — راجع الملفات التي تحذفها WebGee تلقائيًا.

تحقّق

شغّل السكربت وتأكّد من اكتماله. فإن ظل يتوقف، فافحص إن كان يتوقف عند وقت ثابت — فذلك يشير إلى max_execution_time لا إلى LiteSpeed.

اقرأ أيضًا

في هذه الصفحة

استضافتك في مكان آخر؟

استضافة ووردبريس

ووردبريس على LiteSpeed مع تخزين مؤقت للكائنات وشهادة SSL مجانية، مهيّأ كما يشرح هذا الدليل.

اطّلع على الباقاتترحيل مجاني