
ارور memory exhausted در وردپرس
اگر با وردپرس کار کرده باشید (چه یک کاربر معمولی باشید چه یک توسعه دهنده حرفهای) احتمال زیادی وجود دارد که در هنگام کار با سایتتان با پیامی مثل “Fatal error: Allowed memory size of … bytes exhausted (tried to allocate …)” مواجه شده باشید.
پیامی رایج که نشان از محدود شدن حافظه ی اختصاص داده شده به بخشِ پردازش های php سرور دارد.
اما اینی که گفتیم دقیقا یعنی چه؟! این ارور چرا به وجود می آید و چطور باید آن را برطرف کنیم؟

ارور memory exhausted چیست؟
این ارور معمولا همراه با پیام خطایی به قالب زیر در سایت یا پنل وردپرس سایت ظاهر میشود:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 123456 bytes)…
معنای این خطا این است که اسکریپت وردپرس تلاش کرده بیش از مقدار حافظه مجاز تعریف شده در سرور، حافظه مصرف کند. به بیان ساده، میزان حافظه ای که برای اجرای فرآیندهای PHP در اختیار وردپرس قرار گرفته کافی نبوده و عملیات متوقف شده است.
بیشتر بخوانید:
دلایل بروز ارور Memory Exhausted در وردپرس
این ارور زمانی رخ میدهد که وردپرس یا یکی از افزونه ها یا قالب های فعال، تلاش میکنند تا بیشتر از میزان حافظه ی مجازِ سرورِ تعریف شده استفاده کنند.
داستان از آنجا شروع میشود که هر سایت وردپرسی ای برای اجرای عملیات های PHP (مثل بارگذاری صفحه، اجرای افزونه ها، پردازش اطلاعات و…) به مقدار مشخصی از حافظه نیاز دارد. اگر این مقدار حافظه از حد تعیین شده در تنظیمات سرور فراتر رود، فرآیند اجرا متوقف شده و ارور memory exhausted ظاهر میشود.
این محدودیت در هاست های اشتراکی رایجتر است. چون شرکت های هاستینگ برای جلوگیری از استفاده بیش از حد منابع توسط یک سایت، محدودیت هایی برای حافظهی PHP در نظر میگیرند.
از دیگر دلایل رایج بروز این خطا میتوان به استفاده از افزونهها یا قالب هایی اشاره کرد که کدنویسی بهینهای ندارند یا منابع زیادی مصرف میکنند. افزونه هایی مانند صفحه سازها، ووکامرس، پلاگین های پشتیبان گیری یا گزارش گیری. به ویژه در حالت هایی که چند مورد از این افزونه ها همزمان فعال باشند.
نهایتا هم فعالیت هایی مثل ایمپورت فایل های حجیم، بارگذاری عکس های بزرگ یا نصب بسته های نصبی هم میتواند فشار زیادی به حافظه وارد کند.
در نتیجه، ترکیب منابع محدود سرور و مصرف بالای حافظه توسط افزونهها یا عملیات سنگین، به این ارور ختم میشود.

روش های رفع خطای memory exhausted در وردپرس
1. افزایش حافظه PHP از طریق فایل wp-config.php
ساده ترین و سریع ترین روش برای رفع خطای memory exhausted در وردپرس، افزایش حافظه در وردپرس است. یعنی ویرایش فایل wp-config.php
ی که در ریشهی اصلی وردپرس قرار دارد.
کافی است خط زیر را قبل از خط /* That's all, stop editing! */
اضافه کنید:
;define(‘WP_MEMORY_LIMIT’, ‘256M’)
با این کار به وردپرس اعلام می کنید که تا ۲۵۶ مگابایت حافظه مجاز برای استفاده دارد. این عدد را میتوان به 128M، 256M یا حتی بیشتر تغییر داد، اما به شرطی که سرور شما اجازه چنین تغییری را بدهد.
2. ویرایش فایل php.ini (برای سرور اختصاصی یا هاست پیشرفته)
اگر دسترسی به فایل تنظیمات PHP یعنی php.ini
سایتتان دارید، میتوانید حافظه را به صورت مستقیم در آن افزایش دهید. این روش در سرور های اختصاصی، مجازی (VPS) یا هاست های حرفه ای قابل استفاده است. کافی است خط زیر را در فایل php.ini وارد کنید:
memory_limit = 256M
بعد از اعمال این تغییر، معمولا نیاز است وب سرور را ری استارت کنید تا تنظیمات جدید اعمال شوند. در برخی کنترل پنل هایی مثل cPanel یا DirectAdmin هم میتوانید این مقدار را از طریق رابط گرافیکی هم تغییر دهید.
بیشتر بخوانید:
3. استفاده از فایل .htaccess (در هاست های لینوکسی)
در هاست هایی که اجازه دسترسی به php.ini را نمیدهند، میتوانید مقدار حافظه را از طریق فایل .htaccess
افزایش دهید. این فایل نیز در ریشه سایت قرار دارد. کافی است این خط را به آن اضافه کنید:
php_value memory_limit 256M
با این روش، مقدار حافظه در سطح دایرکتوری تنظیم میشود. با این حال، در برخی سرورها این روش پشتیبانی نمیشود و ممکن است باعث ارور 500 شود. بنابراین اگر پس از ذخیره سازی سایت شما از دسترس خارج شد، سریعا این خط را حذف کنید.
4. بررسی افزونه ها و قالب های نصبی وردپرس
یکی از دلایل شایع بروز ارور memory exhausted در وردپرس، افزونه ها یا قالب هایی هستند که مصرف حافظه بالایی دارند یا کدنویسی آنها بهینه نشده است. این مسئله زمانی خودش را بیشتر نشان میدهد که شما اخیرا افزونه ای نصب یا بروزرسانی کردید و بلافاصله بعد از آن با ارور مواجه میشوید.
برای مثال، برخی افزونهها (مثلا صفحه سازها، فروشگاه سازهایی مثل ووکامرس یا افزونههای امنیتی و آماری) حجم زیادی از منابع را برای پردازش درخواستها مصرف میکنند. این مصرف زیاد اگر از حد حافظه مجاز PHP عبور کند، باعث ایجاد ارور میشود.
برای بررسی اینکه آیا واقعا یک افزونه یا قالب عامل بروز مشکل است، بهترین کار این است که به صورت موقت افزونه ها را غیرفعال کرده و سپس یکی یکی آنها را فعال کنید. این روش به شما کمک میکند تا افزونه یا قالب مشکل دار را شناسایی کنید.
در مورد قالب نیز، میتوانید موقتا از قالب پیش فرض وردپرس مثل Twenty Twenty-One استفاده کرده و بررسی کنید که آیا ارور همچنان ادامه دارد یا نه. اگر با قالب پیشفرض مشکلی وجود نداشته باشد، احتمال زیاد قالب اصلی شما عامل مصرف بیش از حد حافظه است.
5. تماس با پشتیبانی هاست
اگر با افزایش حافظه PHP از طریق فایل هایی مثل wp-config.php
یا .htaccess
موفق به رفع ارور نشدید، میتوانید با پشتیبانی هاست خود تماس بگیرید.
در خیلی از هاست های اشتراکی، دسترسی مستقیم به تنظیمات پیشرفته سرور برای کاربران محدود است.
در این شرایط، فقط تیم فنی هاستینگ میتواند حافظه مجاز PHP را از سمت سرور افزایش دهد یا تنظیمات لازم را در فایلهای سیستمی اعمال کند. پس کافی است به آنها اعلام کنید که با ارور memory exhausted روبهرو هستید و نیاز به افزایش memory limit دارید.
6. رجوع به یک تیم پشتیبانی سایت حرفه ای
آخرین راه برای خلاص شدن از شر ارور memory exhausted هم دریافت خدمات رفع مشکل سایت یا خدمتی مثل پشتیبانی سایت از مجموعه هایی مثل دولوپ است.
تیم های پشتیبانی سایت با سال ها سابقه ی فعالیت روی انواع و اقسام سایت های وردپرسی و غیر وردپرسی، میتوانند خیلی سریع ایرادِ سایت شما را پیدا کنند و آن را برایتان برطرف کنند.
دولوپ به عنوان یکی از این تیم های متخصص، با بررسی ارور لاگ های سایت شما، خطای memory exhausted را از سایت شما نیست و نابود میکند!
پس برای دریافت مشاوره و راهنمایی، با متخصصان ما در تماس باشید.
برای دریافت مشاوره خدمات با ما ارتباط بگیرید
جمع بندی موضوع ارور Memory Exhausted
ارور Memory Exhausted در وردپرس یکی از آن خطاهایی است که در نگاه اول ممکن است ترسناک به نظر برسد، اما در واقع یکی از ساده ترین مشکلات قابل حل در سیستم مدیریت محتوای وردپرس است.
خوشبختانه با روشهایی مثل افزودن یک خط کد ساده در فایل wp-config.php
، ویرایش .htaccess
، یا حتی تماس با پشتیبانی هاست، میتوان بهسرعت این مشکل را برطرف کرد. در بسیاری از موارد، افزایش مقدار حافظه به 256 مگابایت یا بیشتر کافی است تا سایت شما بدون خطا به کار خود ادامه دهد.
با این حال، برای جلوگیری از بروز دوباره این خطا در آینده، پیشنهاد میشود همیشه از قالب ها و افزونه هایی استفاده کنید که توسط توسعه دهندگان معتبر و حرفهای تولید شدند. نصب افزونههای زیاد و ناکارآمد، یکی از رایج ترین دلایل فشار بیش از حد روی منابع سرور است.
نهایتا هم حواستان باشد که اگر سایت شما در حال رشد است و ترافیک یا حجم اطلاعات آن بالا میرود، استفاده از هاست اشتراکی ممکن است دیگر پاسخگو نباشد.
در چنین شرایطی، ارتقا به هاست VPS یا هاست وردپرس مدیریت شده با منابع اختصاصی میتواند از بروز خطاهای مشابه جلوگیری کند و تجربهی پایدارتر و سریعتری برای کاربران سایت شما فراهم آورد.
بیشتر بخوانید:
سوالات مربوط به ارور Memory Exhausted
آیا ارور Memory Exhausted به معنی کمبود رم فیزیکی سرور است؟
لزومی ندارد که این خطا به معنای کمبود واقعی رم سخت افزاری باشد. در واقع، بیشتر اوقات محدودیت به دلیل پیکربندی نرمافزاری سرور و سقف مصرف حافظه PHP ایجاد میشود. حتی اگر سرور فیزیکی یا مجازی شما رم بالایی داشته باشد، اگر مقدار حافظه اختصاص داده شده به PHP کم باشد، باز هم این ارور نمایش داده خواهد شد.
چگونه میتوان از بروز مجدد ارور Memory Exhausted جلوگیری کرد؟
برای پیشگیری، باید هم از نظر فنی و هم مدیریتی اقدامات لازم را انجام داد. بهینه سازی کدها، کاهش تعداد افزونه های فعال، استفاده از افزونههای کش (Cache) برای کاهش فشار بر منابع، و انجام بروزرسانی های منظم برای قالب و افزونهها، همگی میتوانند کمک کننده باشند.
همچنین، انتخاب هاستینگ با منابع کافی و پشتیبانی قوی، احتمال بروز دوباره این مشکل را به حداقل میرساند.