آموزش رفع خطای Maximum Execution Time Exceeded در وردپرس
یکی از رایجترین خطاهایی که ممکن است هنگامی که در یک پلن هاستینگ اشتراکی هستید، با آن مواجه شوید، پیام Fatal Error : Maximum Execution Time of x Seconds Exceeded است. ما این را میدانیم چون خودمان نیز بارها با این خطا مواجه شده ایم.
با گذشت زمان، با ارتقای زیرساخت میزبانی توانستیم محدودیت های موجود را کاهش داده و عملکرد کلی سایت را بهبود دهیم. با این حال، شاید شما نخواهید به سرعت هاست خود را تغییر دهید و بخواهید ابتدا این خطا را در پلن هاستینگ فعلی خود برطرف کنید.
این خطا معمولاً زمانی رخ میدهد که یک اسکریپت PHP در وردپرس بیشتر از زمان تعیین شده مجاز در سرور هاست شما نیاز به زمان برای اجرا داشته باشد. در حالی که این محدودیت به جلوگیری از سوءاستفاده از منابع سرور بسیار مفید است، اما گاهی اوقات ممکن است با عملیات معتبر وردپرس تداخل ایجاد کند.
در این مقاله، چندین روش برای رفع «خطای بحرانی: زمان اجرای حداکثر تجاوز کرده» در وردپرس را به شما نشان میدهیم که چه یک تازه کار باشید و چه یک شخص حرفه ای میتوانید از آنها برای رفع این مشکل کمک بگیرید. از شما دعوت میکنیم در ادامه با mrcode.ir همراه شوید.
چرا خطای Maximum Execution Time Exceeded رخ میدهد؟
خطای Maximum Execution Time Exceeded در وردپرس به این دلیل اتفاق میافتد که PHP، زبان برنامهنویسی پشت وردپرس، برای مدت زمان اجرای یک اسکریپت محدودیت زمانی تعیین کرده است. این محدودیت به منظور جلوگیری از سوءاستفاده از سرور ها توسط مدیر سرور اعمال میشود.
شرکتهای هاستینگ مختلف محدودیتهای زمانی متفاوتی را در این زمینه تعیین میکنند، اما معمولاً این زمان چیزی بین 30 تا 60 ثانیه خواهد بود. اگر اجرا و کارکرد یک اسکریپت PHP در سایت شما بیشتر از زمان تعیینشده به طول بینجامد، خطای «زمان اجرای حداکثر تجاوز کرد» به شما نشان داده میشود
چگونه خطای Maximum Execution Time Exceeded را در وردپرس برطرف کنیم
اگرچه این خطا بهعنوان یک «خطای بحرانی» شناخته میشود، اما درواقع یکی از رایجترین خطاهای وردپرس است که به راحتی قابل حل است.
برای برطرف کردن این خطا در وردپرس، میتوانید یکی از راهحلهای زیر را امتحان کنید:
روش اول: استفاده از حالت بازیابی و ریکاوری وردپرس
بسته به زمان و مکانی که خطا در آن اتفاق می افتد، وردپرس ممکن است اعلان خطای “این سایت با مشکلات فنی مواجه است” را در قسمت کاربری سایت نشان دهد.
این بخشی از ویژگی محافظت از خطاهای بحرانی است که در وردپرس 5.2 به بعد اضافه شده است.
همچنین ممکن است ایمیلی دریافت کنید که به شما اطلاع میدهد کدام افزونه (در صورتی که افزونهای باعث خطا شده باشد) این مشکل را ایجاد کرده است.
این ایمیل شامل یک لینک ویژه نیز خواهد بود. این لینک به شما امکان میدهد با استفاده از حالت بازیابی وارد وردپرس شوید. در حالت بازیابی، میتوانید به سادگی افزونهای که باعث خطا شده است را غیرفعال یا حذف کنید.
روش دوم: ویرایش فایل .htaccess خود
این روش برای کاربران وردپرس که نمیتوانند به داشبورد مدیریت وردپرس خود دسترسی پیدا کنند، توصیه میشود. در این حالت برای رفع خطای محدودیت زمان اجرا، لازم است فایل .htaccess خود را به صورت دستی ویرایش کرده و یک خط کد ساده به آن اضافه کنید.
برای این کار، با استفاده از نرم افزار FTP یا برنامه File Manager در cPanel یا دیگر داشبوردهای هاستینگ وب خود به سایت خود متصل شوید.
فایل .htaccess شما در همان پوشهای قرار دارد که پوشههای /wp-content/ و /wp-admin/ نیز در آن هستند.
برای مثال، اگر از FileZilla به عنوان کلاینت FTP استفاده میکنید، میتوانید آن را در بخش Remote Site در ستون سمت راست پیدا کنید.
بعد از پیدا کردن فایل .htaccess، کافی است بر روی آن کلیک راست کرده و گزینه View/Edit را انتخاب کنید.
این کار فایل را در یک ویرایشگر متن باز میکند.
سپس باید کد زیر را در انتهای فایل .htaccess خود اضافه کنید:
1 | php_value max_execution_time 300 |
این کد به سادگی حداکثر مقدار زمان اجرای مجاز را به 300 ثانیه (5 دقیقه) تغییر میدهد. حالا میتوانید به وبسایت خود مراجعه کنید تا ببینید آیا پیام خطا برطرف شده است یا خیر.
اگر هنوز با خطا مواجه هستید، سعی کنید مقدار را به 600 افزایش دهید.
مد نظر داشته باشید این کار فقط برای این است که شما مجددا دسترسی به سایت خود را بازیابید و این روش حل مشکل مانند پاک کردن صورت مسئله است. چرا؟ چون یک سایت استاندارد وردپرسی نباید برای اجرا به این مقدار زمان نیاز داشته باشد. بنابراین پس از اینکه مجددا به سایت خود دسترسی پیدا کردید توصیه میکنیم حتما ریشه مشکل را یافته و در جهت رفع آن کوشا باشید. تا سایت شما بتواند با محدودیت زمانی استاندارد 30 یا 60 ثانیه به درستی اجرا شود.
روش سوم: ویرایش فایل php.ini
روش دیگر برای رفع این خطا در وردپرس، ویرایش فایل php.ini هاست شماست. مد نظر داشته باشید که این روش ممکن است در برخی از هاست ها غیر فعال شده باشد و جواب ندهد.
فایل php.ini یک فایل پیکربندی است که تنظیمات PHP را در سرور شما تعریف میکند. در بسیاری از پلتفرمهای هاستینگ وردپرس، ممکن است این فایل را در پوشه اصلی خود مشاهده نکنید.
در این صورت، میتوانید با استفاده از FTP یا برنامه File Manager یک فایل php.ini جدید در پوشه اصلی وردپرس خود ایجاد کنید.
سپس، فایل php.ini را ویرایش کرده و خط زیر را به آن اضافه کنید:
1 | max_execution_time = 300 |
فراموش نکنید که فایل را ذخیره کرده و تغییرات خود را در هاست بارگذاری کنید. حالا میتوانید به وبسایت خود مراجعه کنید تا ببینید آیا خطا برطرف شده است یا خیر.
روش چهارم: ویرایش فایل wp-config.php خود
این روش کمی با ویرایش فایل .htaccess متفاوت است. در حالی که هر دو روش زمان اجرای حداکثر وبسایت شما را افزایش میدهند، ویرایش wp-config.php تنظیمی ایجاد میکند که بر تمام محیط وردپرس شما تاثیر میگذارد و محدود به هر فولدر نیست.
مانند قبل، باید به پوشه اصلی وردپرس خود با استفاده از یک کلاینت FTP یا مدیر فایل کنترل پنل هاستینگ وب خود دسترسی پیدا کنید. سپس فایل wp-config.php را پیدا کرده و آن را برای ویرایش باز کنید.
خط زیر را درست قبل از خطی که میگوید That’s all, stop editing! Happy blogging بچسبانید:
1 | define('WP_MAX_EXECUTION_TIME', 300); // Replace 300 with your desired time in seconds |
این قطعه کد یک زمان اجرای حداکثر سفارشی بهطور خاص برای سایت وردپرس شما تعریف میکند. توصیه میکنیم قبل از اینکه ثانیههای بیشتری اضافه کنید با 300 ثانیه شروع کنید تا ببینید آیا این خطا را برطرف میکند یا خیر.
روش پنجم: بهینهسازی پایگاه داده وردپرس
یک پایگاهداده بزرگ و حجیم میتواند گاهی باعث کندی وبسایت شما شود و در نهایت منجر به خطای Maximum Execution Time of x Seconds Exceeded گردد. بهینهسازی پایگاهداده به طور منظم، دادههای غیرضروری را حذف کرده و عملکرد کلی وردپرس شما را بهبود میبخشد.
خوشبختانه، بهینهسازی یک پایگاهداده دیگر کار چندان دشواری نیست.
برای بهینه سازی پایگاه داده خود میتوانید از افزونه WP Sweep یا در سرور های لایت اسپید از افزونه Litespeed cache استفاده کنید.
روش ششم: بررسی افزونههای وردپرسی سایتتان
افزونهها میتوانند مثل یک شمشیر دو لبه باشند. در حالی که آنها به وبسایت قابلیتهای جدیدی اضافه میکنند، برخی افزونههای غیر بهینه که به درستی برنامه نویسی نشده اند میتوانند منابع زیادی مصرف کرده و منجر به زمانهای پایان اجرای درخواست شوند.
برای شناسایی افزونه مشکلزا، میتوانید بهطور موقت همه افزونههای خود را غیرفعال کنید و ببینید آیا خطا برطرف میشود یا خیر. اگر خطا برطرف شد، به احتمال زیاد یکی از افزونهها مقصر است.
حالا افزونهها را یکییکی دوباره فعال کنید و پس از هر بار فعالسازی، وضعیت خطا را بررسی کنید. این کار به شما کمک میکند تا افزونه خاصی که باعث بروز مشکل شده است را شناسایی کنید.
اگر نمیتوانید به ناحیه مدیریت دسترسی پیدا کنید، ما یک راهنما در مورد غیرفعال کردن افزونهها حتی زمانی که قادر به دسترسی به داشبورد wp-admin نیستید، داریم.
روش هفتم: ارتقاء پلن هاستینگ
اگر همه روشهای قبلی را امتحان کردهاید و هنوز هم با خطای زمان اجرای حداکثر تجاوز کرد مواجه هستید، ممکن است زمان ارتقاء پلن هاستینگ شما فرا رسیده باشد. این روش معمولاً مؤثرترین راهحل درازمدت است، بهویژه اگر در حال حاضر بر روی یک پلن هاستینگ اشتراکی هستید.
پلنهای هاستینگ اشتراکی، در حالی که مقرون بهصرفه هستند، معمولاً با منابع محدودی همراهاند. با رشد و پیچیدگی بیشتر سایت وردپرس شما، ممکن است به منابع سروری بیشتری از آنچه که پلن فعلی شما ارائه میدهد، نیاز داشته باشید.