وردپرس یکی از محبوبترین سیستمهای مدیریت محتوا است، اما گاهی اوقات با خطاهایی مواجه میشود که میتوانند عملکرد سایت را مختل کنند. یکی از رایجترین این خطاها، خطای محدودیت حافظه (Memory Limit Error) است که معمولاً با پیامی مانند “Allowed memory size exhausted” ظاهر میشود. این خطا زمانی رخ میدهد که وردپرس به حافظه بیشتری از آنچه در سرور یا تنظیمات PHP تخصیص داده شده نیاز دارد. در این مقاله، به بررسی علل این خطا، روشهای تشخیص و راهحلهای کاربردی برای رفع آن میپردازیم. اگر مدیر یک وبسایت وردپرسی هستید، این راهنما به شما کمک میکند تا این مشکل را بهراحتی برطرف کنید.
خطای محدودیت حافظه وردپرس چیست؟
خطای محدودیت حافظه وردپرس زمانی رخ میدهد که اسکریپتهای PHP (مانند افزونهها، قالبها یا هسته وردپرس) به حافظه بیشتری از حد مجاز تعریفشده در تنظیمات سرور نیاز دارند. این خطا معمولاً با پیامهایی مانند زیر نمایش داده میشود:
- Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
- PHP Fatal error: Out of memory
این مشکل میتواند باعث از کار افتادن سایت، نمایش صفحه سفید (White Screen of Death) یا اختلال در عملکرد افزونهها و قالبها شود.
دلایل بروز خطای محدودیت حافظه وردپرس
برای رفع این خطا، ابتدا باید دلایل آن را درک کنیم. شایعترین علل عبارتاند از:
- محدودیت حافظه PHP: اکثر هاستهای اشتراکی محدودیت حافظه PHP را روی 64MB یا 128MB تنظیم میکنند که برای سایتهای بزرگ وردپرسی کافی نیست.
- افزونههای سنگین: افزونههایی مانند ووکامرس، صفحهسازها (مانند Elementor) یا افزونههای سئو میتوانند حافظه زیادی مصرف کنند.
- قالبهای پیچیده: قالبهایی با کدهای غیربهینه یا امکانات پیشرفته ممکن است حافظه زیادی نیاز داشته باشند.
- ترافیک بالا: افزایش تعداد بازدیدکنندگان میتواند فشار روی سرور را افزایش دهد.
- پیکربندی نادرست سرور: تنظیمات نادرست در فایل php.ini یا محدودیتهای هاست میتوانند باعث این خطا شوند.
روشهای تشخیص خطای محدودیت حافظه وردپرس
قبل از رفع خطا، باید مطمئن شوید که مشکل دقیقاً به محدودیت حافظه مربوط است. مراحل زیر به شما کمک میکند:
- بررسی پیام خطا: اگر پیام خطا شامل “memory size exhausted” است، مشکل به حافظه مربوط میشود.
- فعالسازی حالت دیباگ وردپرس: برای فعال کردن حالت دیباگ، فایل wp-config.php را ویرایش کنید و خط زیر را اضافه کنید:
- define(‘WP_DEBUG’, true);
این کار جزئیات خطا را در فایل debug.log ثبت میکند.
- بررسی لاگهای سرور: از کنترل پنل هاست (مانند cPanel) لاگهای PHP را بررسی کنید.
- تست افزونهها و قالبها: افزونهها یا قالبها را غیرفعال کنید تا ببینید آیا خطا برطرف میشود.
روشهای رفع خطای محدودیت حافظه وردپرس
در ادامه، روشهای مختلف برای رفع این خطا را به ترتیب از ساده به پیچیده بررسی میکنیم.
1. افزایش محدودیت حافظه در فایل wp-config.php
یکی از سادهترین راهها، افزایش محدودیت حافظه در فایل تنظیمات وردپرس است.
مراحل:
- به هاست خود وارد شوید و به پوشه اصلی وردپرس بروید.
- فایل wp-config.php را پیدا کرده و آن را ویرایش کنید.
- کد زیر را قبل از خط /* That’s all, stop editing! */ اضافه کنید:
- define(‘WP_MEMORY_LIMIT’, ‘256M’);
- فایل را ذخیره کنید و سایت را بررسی کنید.
نکته: برخی هاستها ممکن است اجازه افزایش حافظه از این روش را ندهند. در این صورت، به روشهای بعدی بروید.
2. تغییر محدودیت حافظه در فایل php.ini
فایل php.ini تنظیمات اصلی PHP سرور را کنترل میکند.
مراحل:
- در کنترل پنل هاست، به بخش File Manager بروید.
- فایل php.ini را در پوشه اصلی یا پوشه public_html پیدا کنید. اگر وجود ندارد، یک فایل جدید ایجاد کنید.
- خط زیر را اضافه یا ویرایش کنید:
- memory_limit = 256M
- سرور را ریاستارت کنید (در صورت امکان) یا با پشتیبانی هاست تماس بگیرید.
نکته: در هاستهای اشتراکی، ممکن است نیاز باشد با ارائهدهنده هاست تماس بگیرید.
3. ویرایش فایل .htaccess
اگر به فایل php.ini دسترسی ندارید، میتوانید از فایل .htaccess استفاده کنید.
مراحل:
- فایل .htaccess را در پوشه اصلی وردپرس پیدا کنید.
- کد زیر را به آن اضافه کنید:
- php_value memory_limit 256M
- فایل را ذخیره کنید و سایت را بررسی کنید.
توجه: این روش در سرورهای آپاچی کار میکند و ممکن است در سرورهای دیگر (مانند Nginx) نیاز به تنظیمات متفاوتی داشته باشد.
4. غیرفعال کردن افزونهها و قالبهای مشکلساز
اگر خطا همچنان پابرجاست، ممکن است یک افزونه یا قالب باعث مصرف بیش از حد حافظه شود.
مراحل:
- به پیشخوان وردپرس بروید و تمام افزونهها را غیرفعال کنید.
- قالب را به یک قالب پیشفرض (مانند Twenty Twenty-Three) تغییر دهید.
- سایت را بررسی کنید. اگر خطا برطرف شد، افزونهها را یکییکی فعال کنید تا افزونه مشکلساز را پیدا کنید.
- افزونه یا قالب مشکلساز را حذف یا جایگزین کنید.
نکته: افزونههای سنگین مانند صفحهسازها یا افزونههای بهینهسازی تصویر معمولاً حافظه زیادی مصرف میکنند.
5. ارتقاء هاست یا سرور
اگر سایت شما بزرگ است یا ترافیک بالایی دارد، ممکن است هاست فعلی نتواند نیازهای شما را برآورده کند.
مراحل:
- با ارائهدهنده هاست تماس بگیرید و درباره ارتقاء به پلن بالاتر (مانند VPS یا سرور اختصاصی) صحبت کنید.
- سرورهایی با حافظه RAM بیشتر و منابع پردازشی قویتر انتخاب کنید.
- از هاستهای بهینهشده برای وردپرس (مانند SiteGround یا WP Engine) استفاده کنید.
مزیت: هاستهای بهتر معمولاً عملکرد کلی سایت را بهبود میدهند و خطاهای سرور را کاهش میدهند.
6. استفاده از افزونههای بهینهسازی
برخی افزونهها میتوانند به کاهش مصرف حافظه کمک کنند.
پیشنهادات:
- WP Rocket: برای کش کردن صفحات و کاهش بار سرور.
- W3 Total Cache: برای بهینهسازی عملکرد و کاهش درخواستهای PHP.
- Smush یا Imagify: برای فشردهسازی تصاویر و کاهش مصرف حافظه.
نکته: از نصب افزونههای زیاد خودداری کنید، زیرا ممکن است خودشان باعث افزایش مصرف حافظه شوند.
7. بهروزرسانی وردپرس، PHP و افزونهها
نسخههای قدیمی وردپرس، PHP یا افزونهها میتوانند باعث مشکلات حافظه شوند.
مراحل:
- وردپرس را به آخرین نسخه بهروزرسانی کنید.
- نسخه PHP را به حداقل 7.4 یا بالاتر ارتقاء دهید (PHP 8.0 یا 8.1 توصیه میشود).
- تمام افزونهها و قالبها را بهروزرسانی کنید.
مزیت: نسخههای جدید معمولاً بهینهتر هستند و باگهای حافظه را برطرف میکنند.
8. تماس با پشتیبانی هاست
اگر هیچکدام از روشها کار نکرد، ممکن است مشکل از تنظیمات سرور باشد.
مراحل:
- با پشتیبانی هاست تماس بگیرید و جزئیات خطا (مانند پیام خطا یا لاگها) را ارائه دهید.
- از آنها بخواهید محدودیت حافظه PHP را افزایش دهند یا تنظیمات سرور را بررسی کنند.
نکته: هاستهای باکیفیت معمولاً پشتیبانی سریعی برای این مشکلات ارائه میدهند.
نکات پیشگیری از خطای محدودیت حافظه
برای جلوگیری از بروز مجدد این خطا، اقدامات زیر را انجام دهید:
- نظارت بر منابع سرور: از ابزارهایی مانند New Relic یا افزونه Query Monitor برای بررسی مصرف حافظه استفاده کنید.
- انتخاب افزونههای سبک: قبل از نصب افزونه، بررسی کنید که آیا بهینه و سبک است یا خیر.
- بهینهسازی دیتابیس: از افزونههایی مانند WP-Optimize برای پاکسازی و بهینهسازی دیتابیس استفاده کنید.
- بکاپ منظم: همیشه از سایت خود نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل بتوانید آن را بازیابی کنید.
نتیجهگیری
خطای محدودیت حافظه وردپرس میتواند برای مدیران سایت نگرانکننده باشد، اما با روشهای مناسب بهراحتی قابلحل است. از افزایش محدودیت حافظه در فایلهای wp-config.php و php.ini گرفته تا غیرفعال کردن افزونههای مشکلساز و ارتقاء هاست، راهحلهای متعددی برای رفع این مشکل وجود دارد. مهم است که ابتدا دلیل خطا را شناسایی کنید و سپس با توجه به نیاز سایت خود، بهترین روش را انتخاب کنید. با بهروزرسانی منظم وردپرس، استفاده از افزونههای بهینه و نظارت بر عملکرد سرور، میتوانید از بروز مجدد این خطا جلوگیری کنید. با اجرای این راهحلها، نهتنها خطای محدودیت حافظه را برطرف میکنید، بلکه عملکرد کلی سایت خود را نیز بهبود میدهید و تجربه کاربری بهتری ارائه خواهید داد.