خطای Allowed memory size در وردپرس

سربرگ‌ها (Headers)

یکی از رایج‌ترین خطاهایی که کاربران وردپرس با آن مواجه می‌شوند، خطای معروف Allowed memory size است. این خطا معمولاً به شکل PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate X bytes) نمایش داده می‌شود. در این مقاله، به‌طور کامل به بررسی دلایل بروز این خطا در وردپرس می‌پردازیم و راه‌حل‌هایی ساده، عملی و حرفه‌ای برای رفع آن ارائه می‌دهیم.

خطای Allowed memory size چیست؟

این خطا زمانی رخ می‌دهد که اسکریپت PHP (در اینجا وردپرس) سعی کند حافظه‌ای بیش از حد مجاز تعریف‌شده در تنظیمات PHP مصرف کند. عدد 134217728 bytes معادل ۱۲۸ مگابایت است که معمولاً به صورت پیش‌فرض در بسیاری از سرورها برای memory_limit در نظر گرفته می‌شود. توجه داشته باشید که ممکن است این عدد بسیار بالاتر از عددی باشد که در این آموزش ذکر شده است که در اکثر مواقع دلیل اصلی آن قالب‌های سنگینی مثل قالب وودمارت می‌باشد که برای عملکرد صحیح نیاز به حافظه بسیار زیادی دارند.

چرا این خطا در وردپرس رخ می‌دهد؟

وردپرس یک سیستم مدیریت محتوای پیشرفته است که با افزونه‌ها، قالب‌ها و عملکردهای مختلف کار می‌کند. گاهی اوقات استفاده همزمان از افزونه‌های سنگین، یا اجرای پردازش‌های حجیم باعث می‌شود میزان مصرف حافظه افزایش پیدا کند. دلایل رایج عبارتند از:

  • استفاده از افزونه‌های سنگین مثل WooCommerce، Elementor، WPML
  • اجرای فرآیندهای پیچیده مانند ایندکس‌گذاری، بک‌آپ‌گیری، یا پردازش تصاویر
  • بارگذاری هزاران رکورد در یک کوئری
  • قالب‌هایی با کدنویسی غیربهینه یا لود بیش‌ازحد منابع و…

در برخی موارد این مشکل منجر به مشکلاتی مثل: دریافت خطای 500 درصفحه، لود بسیار طولانی (سنگین)، عملکرد ناقص برخی افزونه‌ها، شکست خوردن درخواست‌ها و… می‌شود. البته درحال حاضر رایج‌ترین مشکلات آن کند شدن سایت و پیشخوان و لود نشدن صفحه ساز المنتور می‌باشد.

چگونه خطای Allowed memory size را در وردپرس رفع کنیم؟

چگونه خطای Allowed memory size را در وردپرس رفع کنیم؟

1. افزایش حافظه مجاز وردپرس

توجه: بهترین روش برای برطرف کردن این خطا روش اول یا افزایش حافظه از طریق wp-config.php که اگر اعمال نشد کافیه به پشتیبانی هاست خودتون اطلاع بدین تا این مقدار رو افزایش بدن که باتوجه به وب سرور مربوط به سرور هاست سایت شما، روش افزایش این مورد متفاوته. روش دوم و سوم هم کاربردی هستن اما زمان زیادی میبرن و تو 99% مواقع روش اول جواب میده.

ساده‌ترین راه برای رفع این خطا افزایش محدودیت حافظه است. در فایل wp-config.php:

در انتهای این فایل و قبل از خط /* That's all, stop editing! */، این کد را قرار دهید:
(این تغییر به وردپرس اجازه می‌دهد که تا ۲۵۶ یا ۵۱۲ مگابایت حافظه در اختیار بگیرد، درصورتی‌که هاست اجازه چنین افزایشی را بدهد.

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

2. تغییر memory_limit در سرور

اگر تغییرات در wp-config.php کافی نبود، باید سطح PHP را تغییر دهید.

در فایل .htaccess (برای هاست Apache):
php_value memory_limit 256M

در فایل php.ini (در هاست‌هایی که دسترسی دارند):

memory_limit = 256M

3. بررسی افزونه‌های پرمصرف

برخی افزونه‌ها مانند پلاگین‌های فروشگاهی یا سئو ممکن است حافظه زیادی مصرف کنند. برای شناسایی این موارد می‌توانید از افزونه‌های زیر استفاده کنید:

  • Query Monitor: برای مشاهده مصرف منابع هر افزونه
  • Health Check: برای اجرای سایت در حالت ایزوله و تست پلاگین‌ها بدون تأثیر روی سایت

گاهی نیز این احتمال وجود دارد این خطای به دلیل مشکلات داخلی سایت و اختلال افزونه‌ای در وردپرس پدیدار شود که برای این مورد پیشنهاد می‌شود حتما مقاله رفع تداخل افزونه‌ای وردپرس در 5 مرحله را بررسی کنید.

جمع‌بندی

خطای Allowed memory size of 134217728 bytes exhausted یکی از خطاهای رایج وردپرس است که معمولاً به‌خاطر محدود بودن حافظه مجاز در سرور رخ می‌دهد. با افزایش مقدار memory_limit و بهینه‌سازی افزونه‌ها، قالب و فرآیندهای وردپرس، می‌توانید به‌راحتی این خطا را برطرف کنید.

فراموش نکنید بالا بردن حافظه هرچند مشکل شما را برطرف می‌کنید اما هرچه این عدد بالاتر رود نشان دهنده نیاز سایت شما به حافظه بیشتری است که در اکثر موارد این مورد در بلند مدت منجر به کند شدن سایت خواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *