یکی از خطاهای رایج و البته نگران کننده ای که مدیران سایت ها با آن مواجه می شوند، مشکل محدودیت حافظه PHP وردپرس است. این محدودیت تعیین می کند که زبان برنامه نویسی PHP در حین پردازش درخواست های وردپرس تا چه میزان از حافظه (RAM) سرور می تواند استفاده کند.
زمانی که سایت شما به حافظه ای بیش از حدِ مجاز نیاز داشته باشد، با خطاهایی مانند Allowed memory size exhausted (پایان یافتن حجم حافظه مجاز)، لود نشدن کامل صفحات، توقف در به روزرسانی ها یا اختلال در کارهای سنگین سایت مواجه می شوید.
با این حال، افزایش میزان حافظه همیشه اولین و بهترین راه حل نیست؛ چرا که مصرف بیش از حد حافظه می تواند نشان دهنده وجود یک افزونه غیربهینه، قالب سنگین یا فرآیندهای ناقص در سایت باشد. در این مقاله به طور کامل توضیح می دهیم که محدودیت حافظه PHP وردپرس چگونه کار می کند، علائم و دلایل آن چیست و چگونه می توانید آن را به صورت اصولی برطرف کنید.
پیام خطای Allowed memory size exhausted دقیقاً به این معناست که یک پردازش PHP تلاش کرده است تا از حافظه ای بیشتر از آنچه برایش تعیین شده استفاده کند. مستندات رسمی وردپرس این خطا را به عنوان یکی از نشانه های اصلی برای بررسی مشکل محدودیت حافظه PHP وردپرس معرفی می کنند.
وردپرس معمولاً در شرایط زیر به حافظه بیشتری نیاز پیدا می کند:
نکته مهم این است که این خطا تنها به شما می گوید حافظه تمام شده است، اما دلیل آن را مشخص نمی کند. اگر بلافاصله پس از نصب یک افزونه، تغییر قالب یا یک تغییر بزرگ دیگر با این خطا مواجه شدید، پیش از آنکه فقط حافظه را افزایش دهید، باید همان تغییرات اخیر را بررسی کنید.
برای رفع اصولی مشکل، باید تفاوت سه مفهوم کلیدی را بدانید:
این متغیر یک تنظیمات پیکربندی در وردپرس است که مشخص می کند وردپرس برای عملکردهای عادی سایت (سمت کاربر یا فرانت اند) چقدر حافظه PHP باید درخواست کند. وردپرس سعی می کند حافظه را تا این مقدار افزایش دهد، به شرطی که تنظیمات سرور این اجازه را بدهد.

دقت کنید که این متغیر کنترل نامحدودی به وردپرس نمی دهد. اگر سرور شما محدودیت سخت گیرانه تری تعیین کرده باشد، تغییر این مقدار در وردپرس به تنهایی تاثیری نخواهد داشت.
این تنظیمات مربوط به حافظه در دسترس برای عملیات های بخش مدیریت (Backend) وردپرس است. پیشخوان وردپرس، به ویژه در زمان کارهایی مثل آپلود فایل های رسانه ای یا آپدیت ها، معمولاً به حافظه بیشتری نسبت به صفحات عادی سایت نیاز دارد.
به همین دلیل است که گاهی کاربران سایت را بدون مشکل می بینند، اما مدیر سایت در پیشخوان با مشکل محدودیت حافظه مواجه می شود.
متغیرهای بالا به وردپرس می گویند که درخواست چه مقدار حافظه را بدهد. اما PHP memory_limit بخشی از تنظیمات اصلی PHP در سرور است و سقف نهایی مجاز را تعیین می کند. وردپرس هرگز نمی تواند محدودیت اصلی سرور را نادیده بگیرد. بنابراین یکی از مهم ترین گام ها در رفع مشکل محدودیت حافظه PHP وردپرس، بررسی محدودیت های اعمال شده از سمت هاستینگ است.
هیچ دلیل واحدی برای بروز این مشکل وجود ندارد. رایج ترین علل عبارتند از:
برای حل این مشکل مراحل زیر را طی کنید:
از خود بپرسید: آیا افزونه جدیدی نصب کرده ام؟ آیا قالب تغییر کرده است؟ آیا بک آپ گیری در حال اجرا بوده است؟
بررسی فایل Error Log (لاگ خطاها) در کنترل پنل هاست می تواند به شما نشان دهد دقیقاً کدام افزونه یا اسکریپت باعث اتمام حافظه شده است.
گاهی اوقات سایت شما به دلیل رشد طبیعی به حافظه بیشتری نیاز دارد. شما می توانید با قرار دادن قطعه کد زیر در فایل wp-config.php (قبل از خط /* That’s all, stop editing! */) محدودیت را افزایش دهید:
PHP
define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
define( ‘WP_MAX_MEMORY_LIMIT’, ‘512M’ );
نکته: همان طور که گفته شد، اگر هاست شما محدودیت پایین تری داشته باشد، این کد عمل نخواهد کرد.
بله، این امکان وجود دارد! گاهی اوقات افزایش حافظه باعث می شود یک افزونه مخرب بتواند به کار خود ادامه دهد و خطا موقتاً ناپدید شود. اما با افزایش ترافیک سایت، دوباره سایت از کار می افتد. اگر یک افزونه رفتار غیرعادی در مصرف منابع دارد، بهینه سازی، جایگزینی یا حذف آن بسیار موثرتر از افزایش مداوم حافظه است.
هر مشکل محدودیت حافظه PHP وردپرس لزوماً تقصیر هاست نیست و ابتدا باید کدهای سایت و افزونه ها بررسی شوند. اما اگر سایت شما رشد کرده، ترافیک بالایی دارد و به صورت طبیعی برای پردازش های روزمره خود به منابع بیشتری نیاز دارد، زمان بازنگری در سرویس میزبانی فرا رسیده است.
اگر یک سایت وبلاگی یا شرکتی در حال رشد دارید، تهیه یک هاست وردپرس قدرتمند با منابع اختصاصی تر می تواند سرعت و پایداری سایت شما را تضمین کند. از سوی دیگر، اگر یک فروشگاه اینترنتی دارید، پردازش های ووکامرس (مثل سبد خرید، درگاه پرداخت و فیلتر محصولات) به شدت نیازمند حافظه و پردازنده (CPU) هستند. در این شرایط، استفاده از یک سرویس اشتراکی معمولی پاسخگو نیست و باید به فکر خرید هاست ووکامرس باشید که دقیقاً برای تحمل بار پردازشی فروشگاه های آنلاین بهینه سازی شده است.

خطای محدودیت حافظه PHP وردپرس زمانی رخ می دهد که سایت شما سعی دارد از حافظه رم بیشتری نسبت به آنچه سرور اجازه داده استفاده کند. در حالی که تنظیماتی مانند WP_MEMORY_LIMIT به مدیریت این درخواست ها کمک می کنند، اما در نهایت این منابع هاست شماست که حرف آخر را می زند.
پیش از افزایش بی رویه حافظه، حتماً افزونه ها و عملکردهای سایت را بررسی کنید تا مطمئن شوید کدهای مخرب یا غیربهینه منابع شما را هدر نمی دهند. اگر سایت شما به طور منطقی بزرگ شده است، ارتقاء سرویس میزبانی بهترین راه حل خواهد بود.
این خطا یعنی یک پردازش در زبان PHP سعی کرده از حافظه ای بیشتر از حد مجازِ تنظیم شده استفاده کند. قدم بعدی شما باید پیدا کردن افزونه، قالب یا فرآیندی باشد که این حافظه را اشغال کرده است.
این متغیر به وردپرس می گوید که برای عملکردهای عادی سایت به چه مقدار حافظه PHP نیاز دارد. البته مقدار نهایی که وردپرس می تواند استفاده کند، به پیکربندی سرور و PHP بستگی دارد.
ممکن است به طور موقت خطا را برطرف کند، اما در واقع مشکل و کدهای غیربهینه آن افزونه را پنهان می کند. اگر مصرف حافظه سایت شما به طور غیرعادی بالاست، باید افزونه یا بخش مقصر را پیدا کرده و جایگزین کنید.
محیط هاستینگ شما ممکن است یک سقف (Cap) سخت گیرانه برای حافظه PHP در نظر گرفته باشد که وردپرس قادر به دور زدن آن نیست. بنابراین، مقداری که در وردپرس درخواست می کنید همیشه با مقداری که هاست به شما اختصاص می دهد برابر نخواهد بود و باید با پشتیبانی هاست خود تماس بگیرید.