خطا Allowed Memory Size Exhausted وردپرس – ارور out of memory وردپرس



اگه توی وردپرس با خطای “Allowed Memory Size Exhausted” روبرو شدی، یعنی حافظه PHP سرور یا هاست که برای اجرای اسکریپت‌ ها و پلاگین ها در نظر گرفته شده، پر شده و وردپرس دیگه نمیتونه پردازش‌ هاشو انجام بده. این مشکل معمولا وقتی پیش میاد که یک افزونه یا قالب سنگین در سایتتون داشته باشید یا سرورتون محدودیت حافظه پایینی داشته باشه و برای حل مشکل باید WP_MAX_MEMORY_LIMIT و WP_MEMORY_LIMIT در تنظیمات وردپرس یا memory_limit در تنظیمات php یا از طریق htaccess زیاد کنید.

 

ارور allowed memory size (ارور out of memory وردپرس)

بعد از خرید vps برای راه اندازی سایت یا هاست وردپرس، همه تنظیمات در حالت پیش فرض قرار داره و مقدار memory که به php اختصاص داده شده 128M هست که برای اجرای بعضی قالب ها و پلاگین ها کم هست، این نوع خطای “Allowed Memory Size Exhausted” یا “Fatal error: Allowed memory size of x bytes exhausted” یا “out of memory” همه از جنس یک نوع خطا هستن و یکی از رایج ترین خطاهایی هست که در سایت های وردپرسی دیده میشه و برای حل مشکل باید اقدام به << رفع خطای حافظه در وردپرس >> کنید و << حافظه PHP وردپرس افزایش >> بدید.

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

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 98574336 bytes) in /.../wp-content/object-cache.php on line 425

 

رفع خطای Allowed Memory Size Exhausted

 

1 – فایل wp-config.php رو که در پوشه وردپرس هاست یا سرور مجازی امارات هست، با یک ویرایشگر باز کنید و کدهای زیر بهش اضافه کنید و حافظه PHP وردپرس افزایش بدید. (روش پیشنهادی)

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

 

2 – برای رفع خطای حافظه در وردپرس، اگه به تنظیمات PHP دسترسی دارید (مثلا در هاست VPS یا دایرکت ادمین)، فایل php.ini رو ویرایش کنین و مقدار متغیر زیر زیاد کنید. در حالت پیش فرض روی 128M هست ولی میتونین رو 512 یا 1024 قرار بدید.

memory_limit = 512M

اگر میخواین که مقدار Memory تنظیمات php برای کل سرور زیاد باشه، میتونین در فایل تنظیمات اصلی php.ini اینکار انجام بدید. اگر نمیدونین که مسیر php.ini تنظیمات اصلی کجاست، دستور زیر داخل SSH بزنید تا مسیر این فایل php.ini براتون نشون داده بشه، بعدش فایل php.ini با ویرایشگر باز کنین و مقدار memory_limit پیدا کنین و زیاد کنین.

php -i | grep 'Configuration File'

بعد از انجام تغییرات، وب سرور و هندلر php باید ریستارت کنید.

یا میتونین داخل پوشه public_html یک فایل به اسم php.ini ایجاد کنید و فقط برای همین هاست زیاد کنید.

 

3 – یا این تنظیمات رو داخل فایل .htaccess (داخل پوشه اصلی وردپرس، داخل Public_html) قرار بدید.

php_value memory_limit 512M

 

 

اگر مشکل حل نشد، باید ببینی که کدوم افزونه یا قالبی که استفاده میکنی سنگین هست که باعث این مشکل شده، افزونه هایی مثل Wordfence، WP Rocket، Elementor معمولا مصرف حافظه بالایی دارن، یکی یکی افزونه هارو غیرفعال کن و ببین کدوم افزونه مشکل ایجاد میکنه.

اگر هاست cPanel داری، لاگ خطاهای cPanel تو قسمت Errors نشون داده میشه. یا میتونی حالت debug mode وردپرس فعال کنی، برای انجام اینکار فایل wp-config.php باز کن و کدهای زیر بهش اضافه کن.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);