رفع خطای allowed memory size exhausted در وردپرس
در ادامه سری آموزش های رفع خطاهای وردپرس در این مطلب میخواهیم با علت به وجود آمدن و همچنین رفع خطای allowed memory size exhausted در وردپرس آشنا شویم.احتمالا تا امروز پیش آمده که در هنگام فعال کردن یک افزونه یا انجام کارهای دیگر در وردپرس، با خطایی مشابه خطای زیر برخورد کرده باشید :
Fatal error: Allowed memory size of 43654821 bytes exhausted (tried to allocate 3248727 bytes) in /home/xxx/public_html/wp-includes/plugin.php on line xx
در واقع این ارور به ما میگوید که:وردپرس شما به مموری کافی دسترسی ندارد
Memory Exhausted Error چیست؟
همانطور که میدانید هر وب سایت وردپرسی نیاز به یک هاست یا فضای میزبانی دارد. وب سرورها نیز همانند دیگر کامپیوترها به مقداری فضای حافظه نیاز دارند تا بصورت همزمان قادر به اجرای برنامه های متعدد باشند. از این رو مدیران سرور نیز به برنامه های مختلف (از جمله php که وردپرس به آن زبان نوشته شده است) مقادیری خاص (بصورت پیش فرض) از این حافظه را اختصاص میدهند.
محدودیت حافظه وردپرس بصورت پیش فرض روی مقدار ۶۴MB تعریف گردیده اما گاها پیش می آید که وردپرس به مقدار حافظه ی بیشتری نسبت به مقدار پیش فرض تعریف شده نیاز پیدا میکند و این همان زمانی ست که شما با پیغام خطایی شبیه به آن چیزی که در بالا آورده شده مواجه می شوید.
در اکثر مواقع میتوان این خطا را به سادگی و با افزودن یک خط کد به فایل wp-config.php برطرف کرد. کافی است فایل تنظیمات وردپرس را برای ویرایش باز کنید. اگر این فایل را جابجا نکرده باشید، با مراجعه به فولدر public_html یا روت هاست خود به سادگی میتوانید آن را پیدا کنید ولی اگر قبلا نصب وردپرس خود را امن کرده باشید، این فایل در یک فولدر بالا تر، یعنی در home هاست شما قرار دارد. بعد از اینکه فایل wp-config.php را برای ویرایش باز کردید، خط کد زیر را جایی بین تگ های اصلی php اضافه کنید :
define('WP_MEMORY_LIMIT', '64M');
و سپس تغییرات را ذخیره نمایید. (بهتر است قبل از انجام کار یک نسخه ی پشتیبان از فایل wp-config.php خود تهیه کنید. کاری که این کد انجام میدهد این است که مموری مجاز برای وردپرس را تا 64 مگابایت افزایش میدهد. شاید بگویید که این مقدار خیلی کم است. ولی در واقع اصلا اینطور نیست. چرا که وردپرس به صورت پیشفرض در هنگام اجرا تنها 40 مگابایت مموری از سیستم درخواست میکند و حالا با کدی که شما در فایل تنظیمات قرار داده اید، وردپرس در ابتدای اجرا بررسی میکند و اگر مموری رزرو شده کمتر از مقدار 64 مگابایت باشد، اطمینان حاصل میکند که این مقدار مموری برای اجرا، Reserve گردد.
این مقدار مموری برای یک نصب استاندارد وردپرس کاملا کافی است اما فرضا اگر به مموری بیشتری نیاز داشته باشید میتوانید به سادگی رقم 64 را به عددهای 96 یا 128 تغییر دهید. توجه داشته باشید که انتخاب ارقام بالاتر نه تنها تاثیر مثبتی روی اجرای اسکریپت شما نخواهد داشت، بلکه میتواند منجر به کندی سایت، هاست و کرش کردن سرور شود. البته بدیهی است که شما قادر نخواهید بود مموری بیش از حداکثر مقدار تعیین شده در تنظیمات اصلی سرور و php.ini به وردپرس اختصاص دهید و اگر با افزایش این مقادیر، باز هم سایت شما همان خطای Allowed memory size exhausted را به شما اعلام میکند، ابتدا باید مطمئن شوید که :
- دستور شما به درستی در فایل تنظیمات قرار گرفته و اجرا میشود.
- مموری بر روی هاست شما به رقمی کمتر از 64 مگابایت محدود نباشد.
- اطمینان حاصل کنید که نصب وردپرس شما استاندارد بوده و افزونه های سنگین و غیر استاندارد روی آن وجود ندارند.
اگر هیچکدام ار روش های بالا موثر واقع نشد میتوانید با پیشتیبانی هاست خود ارتباط برقرار کرده و مشکل موجود را با آن ها نیز در میان بگذارید.