رفع خطای Maximum Execution Time Exceeded در وردپرس
وقتی وردپرس میگوید «وقت تمام شد»
اگر با خطایی شبیه به این مواجه شدهاید:
Fatal error: Maximum execution time of 30 seconds exceeded
یعنی اسکریپت PHP نتوانسته در زمان تعیینشده اجرا شود و سیستم آن را متوقف کرده است.
این خطا معمولاً در شرایط زیر رخ میدهد:
- آپدیت افزونه یا قالب
- ایمپورت فایلهای حجیم
- اجرای بکاپ
- انجام عملیات ووکامرس
- پردازش فرمهای پیچیده
- اجرای Cron Job
واکنش رایج کاربران چیست؟ افزایش عدد max_execution_time. اما سؤال اصلی اینجاست:
چرا اسکریپت اصلاً اینقدر طول کشیده است؟
پاسخ معمولاً در زیرساخت هاست نهفته است.
تعریف دقیق خطای Maximum Execution Time با نگاه فنی
در PHP، پارامتری به نام max_execution_time تعیین میکند هر اسکریپت حداکثر چند ثانیه اجازه اجرا دارد. اگر در این بازه اسکریپت تمام نشود، یا منتظر پاسخ دیتابیس بماند و یا در صف منابع قرار گیرد، PHP آن را متوقف میکند.
در وردپرس مدرن (۲۰۲۵–۲۰۲۶)، بسیاری از عملیاتها Ajax-based، وابسته به REST API و دیتابیسمحور هستند. بنابراین اگر Backend کند باشد، این خطا اجتنابناپذیر میشود.
بررسی عوامل تأثیرگذار در بروز این خطا
۱
کندی دیتابیس (MariaDB)
اگر کوئریها بهینه نباشند، روی دیسک کند اجرا شوند یا همزمان زیاد باشند، PHP منتظر میماند. این انتظار طولانی باعث رسیدن به سقف زمان اجرا میشود. استفاده از MariaDB بهینهشده روی NVMe واقعی زمان پاسخ را به شدت کاهش میدهد.
۲
نبود Object Cache و Redis
وقتی Object Cache فعال نیست، هر درخواست دهها کوئری جدید اجرا میکند. Redis باعث میشود نتایج تکراری از RAM خوانده شوند، زمان اجرای اسکریپت کوتاه شده و Execution Time کمتر مصرف شود.
۳
نقش PHP 8.x و OPcache
PHP 8.x نسبت به نسخههای قدیمی سریعتر اجرا شده و مصرف CPU کمتری دارد. OPcache فعال مانع کامپایل مجدد اسکریپتها میشود. در سرورهایی که OPcache محدود است، اسکریپتها دیرتر اجرا شده و Timeout رخ میدهد.
۴. فشار منابع CPU در هاست اشتراکی
در هاست اشتراکی، CPU بین کاربران تقسیم میشود. اگر همزمان چند سایت درگیر باشند، اسکریپت شما در صف اجرا میماند. وجود CloudLinux مصرف CPU هر کاربر را ایزوله کرده و مانع این تداخل میشود.
۵. نقش وبسرور و LiteSpeed
در وبسرورهای بدون کش مؤثر، هر درخواست وارد PHP میشود و اسکریپتها صف میخورند. در ترکیب LiteSpeed + LSCache، بخش زیادی از درخواستها از کش پاسخ داده شده و Backend سبکتر میشود.
۶. عملیات سنگین در محیط ضعیف
عملیاتی مثل بکاپ کامل، ایمپورت XML یا بازسازی تصاویر روی هاست ضعیف تقریباً همیشه با خطای Execution Time مواجه میشوند.
مقایسه گزینهها با نگاه کاربردی
هاست اشتراکی معمولی
- CPU محدود
- بدون Redis و دیسک کند
- ریسک بالای Timeout
هاست اشتراکی پرسرعت و مناسب وردپرس
- NVMe و MariaDB بهینه
- Redis و PHP 8.x + OPcache
- LiteSpeed + LSCache و CloudLinux
راهکار پیشنهادی: اگر هنگام آپدیت یا اجرای عملیات سنگین مدام با خطای زمان اجرا مواجه میشوید، انتخاب هاست wordpress با منابع پایدار و دیتابیس سریع مؤثرتر از افزایش دستی عدد Timeout خواهد بود.
VPS خام
- امکان افزایش max_execution_time
- اما اگر منابع واقعی کافی نباشد، مشکل باقی میماند
- نیازمند مدیریت دقیق PHP-FPM و دیتابیس
اشتباهات رایج کاربران درباره این خطا
- افزایش بیشازحد Execution Time بدون بررسی علت
- اجرای بکاپهای سنگین روی هاست اشتراکی ضعیف
- نادیده گرفتن نقش دیتابیس و Redis
- باقی ماندن روی PHP قدیمی
- نصب افزونههای سنگین بدون توجه به منابع
- مهاجرت به VPS بدون تنظیم صحیح
جمعبندی تصمیمساز + Call To Action
خطای Maximum Execution Time Exceeded به شما میگوید Backend سایت شما دیر پاسخ میدهد. این یعنی دیتابیس کند است، CPU محدود است یا کش مؤثر وجود ندارد. راهحل پایدار شامل MariaDB بهینه، NVMe، Redis و LiteSpeed است.
پیشنهاد فنی: اگر میخواهید عملیات سنگین وردپرس بدون توقف و Timeout اجرا شوند، استفاده از زیرساخت هاست وردپرس که برای بار واقعی سایت طراحی شده باشد انتخابی منطقی و آیندهنگرانه است.
FAQ – سوالات متداول
سوال ۱: آیا افزایش max_execution_time کافی است؟
خیر، اگر علت اصلی کندی زیرساخت باشد، شما فقط زمان بیشتری برای شکست خوردن (Fail) به اسکریپت میدهید.
سوال ۲: Redis چه کمکی به کاهش این خطا میکند؟
Redis بار دیتابیس را کاهش داده و باعث میشود اسکریپتها نتایج را سریعتر دریافت کنند، در نتیجه زمان اجرا کوتاهتر میشود.
سوال ۳: NVMe چقدر در رفع این مشکل مهم است؟
بسیار مهم است؛ به ویژه برای عملیات دیتابیسمحور که نیاز به سرعت بالای خواندن و نوشتن دارند.
سوال ۴: چرا روی VPS هم این خطا رخ میدهد؟
بهدلیل اختصاص دادن منابع (RAM/CPU) ناکافی یا تنظیمات ناصحیح در PHP-FPM و مدیریت ضعیف صف پردازشها.
سوال ۵: آیا LiteSpeed در کاهش این خطا نقش دارد؟
بله، چون LiteSpeed درخواستهای کششده را بدون درگیر کردن موتور PHP پاسخ میدهد و بار روی Backend را سبک میکند.
