# رفع خطای Allowed memory size در وردپرس

- آدرس: https://di9.ir/blog/%D8%AE%D8%B7%D8%A7%DB%8C-%D8%AD%D8%A7%D9%81%D8%B8%D9%87-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3
- نویسنده: danidiba
- انتشار: 2026-09-15T14:01:00+03:30
- به‌روزرسانی: 2026-09-15T14:01:00+03:30
- دسته: خطاها و رفع مشکل
- برچسب‌ها: memory limit، php.ini، wp-config، خطای حافظه، وردپرس

> پیام «Allowed memory size of ... bytes exhausted» یعنی اسکریپت PHP از سقف حافظه‌اش بیشتر مصرف کرده است. در این مقاله چند راه بالا بردن سقف، پیدا کردن افزونه یا کاری که حافظه را می‌بلعد و راه جلوگیری از تکرار را می‌بینید.

متن خطا چیزی شبیه این است:

```
Fatal error: Allowed memory size of 134217728 bytes exhausted
(tried to allocate 20480 bytes) in /home/user/public_html/wp-content/plugins/xyz/file.php on line 120
```

عدد اول سقف است (۱۲۸ مگابایت در این مثال) و عدد دوم مقداری است که اسکریپت تازه می‌خواسته. مسیر فایل هم می‌گوید خطا به کدام افزونه یا قالب برمی‌گردد. گاهی به‌جای پیام، فقط صفحه‌ی سفید یا خطای ۵۰۰ می‌بینید؛ برای آن حالت [خطاهای رایج وردپرس](https://di9.ir/blog/%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C-%D8%B1%D8%A7%DB%8C%D8%AC-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3) را هم ببینید.

## چرا حافظه تمام می‌شود

هر درخواست به وردپرس یک اجرای PHP است و برای هر اجرا سقفی تعیین شده. وقتی کاری سنگین می‌شود و از سقف رد می‌شود، سرور آن را می‌کشد. دلیل‌های رایج:

- افزونه‌ی سنگین (صفحه‌ساز، بکاپ، سئو، گالری) روی صفحه‌ای با داده‌ی زیاد.
- بارگذاری یا فشرده‌سازی تصویر بسیار بزرگ.
- درون‌ریزی یا برون‌ریزی فایل حجیم.
- حلقه یا پرس‌وجوی بی‌نهایت در کد قالب و افزونه.
- سقف خیلی کم هاست.

یک نکته‌ی مهم: خطا همیشه به معنی «سایت ضعیف است» نیست. گاهی فقط یک عمل خاص، مثلاً ساخت بکاپ کامل، درون‌ریزی هزاران محصول یا بارگذاری یک تصویر چندده‌مگابایتی، کوتاه‌مدت حافظه‌ی زیادی می‌خواهد. اگر بقیه‌ی روزها سایت بی‌دردسر کار می‌کند، همان یک کار را کوچک‌تر یا دسته‌دسته انجام دهید و سقف را بی‌دلیل برای همیشه بالا نبرید. اما اگر خطا بی‌دلیل و در بازدید معمولی صفحه‌ها می‌آید، حتماً دنبال افزونه یا قالب معیوب بگردید.

## عددها را بخوانید

سقف در پیام بر حسب بایت آمده. تبدیل ساده برای عددهای رایج:

| بایت در پیام | معادل |
| --- | --- |
| 33554432 | ۳۲ مگابایت |
| 67108864 | ۶۴ مگابایت |
| 134217728 | ۱۲۸ مگابایت |
| 268435456 | ۲۵۶ مگابایت |

اگر سقف پیام کمتر از چیزی است که در wp-config نوشته‌اید، یعنی تنظیم شما اعمال نشده و سقف PHP هاست جلوی آن را گرفته است. برای دیدن سقف فعلی از پیشخوان به بخش سلامت سایت (Site Health) و اطلاعات سرور بروید؛ حد حافظه‌ی PHP و حد وردپرس آنجا نوشته شده است.

## گام اول: بالا بردن سقف

سه لایه وجود دارد و باید با هم هماهنگ باشند.

### ۱. تنظیم وردپرس

در `wp-config.php` و **بالاتر** از خط «That's all, stop editing»:

```php
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
```

`WP_MEMORY_LIMIT` برای بخش عمومی سایت و `WP_MAX_MEMORY_LIMIT` برای پیشخوان و کارهای سنگین مدیریتی است. عددها نمونه‌اند؛ اول با مقدار کمتر امتحان کنید.

### ۲. تنظیم PHP در پنل هاست

در سی‌پنل از بخش انتخاب نسخه‌ی PHP یا ویرایشگر تنظیمات PHP (نام دقیق بسته به هاست فرق می‌کند) مقدار `memory_limit` را بالا ببرید. روی سرور مدیریت‌شده خودتان در `php.ini`:

```
memory_limit = 256M
```

بعد از تغییر php.ini ممکن است لازم باشد PHP یا وب‌سرور بازراه‌اندازی شود.

### ۳. فایل htaccess

بعضی هاست‌های مبتنی بر Apache با ماژول PHP اجازه می‌دهند:

```apache
php_value memory_limit 256M
```

اگر هاست با PHP-FPM یا FastCGI کار کند، این خط خطای ۵۰۰ می‌سازد. در این حالت فوری آن خط را بردارید و به راه دوم بروید. همیشه قبل از ویرایش از `.htaccess` نسخه‌ی پشتیبان بگیرید.

> سقف نهایی را هاست تعیین می‌کند. اگر پنل اجازه‌ی مقدار بیشتری نمی‌دهد، باید با پشتیبانی هاست صحبت کنید یا سرویس را ارتقا دهید.

## گام دوم: پیدا کردن مقصر

بالا بردن سقف اغلب فقط علامت را پنهان می‌کند. اگر مصرف از ۲۵۶ مگ هم رد می‌شود، چیزی درست کار نمی‌کند.

1. فایل ذکرشده در پیام را نگاه کنید. مسیر `plugins/نام-افزونه` سرنخ مستقیم است.
2. لاگ خطا را فعال کنید: `WP_DEBUG` و `WP_DEBUG_LOG` را روشن و `WP_DEBUG_DISPLAY` را خاموش بگذارید تا خطا برای بازدیدکننده چاپ نشود. بعد فایل `wp-content/debug.log` را بخوانید.
3. وقتی خطا فقط در یک صفحه‌ی خاص رخ می‌دهد، محتوای آن صفحه یا افزونه‌ی مربوط را بررسی کنید.
4. افزونه‌ها را یکی‌یکی غیرفعال کنید؛ روش کامل در [رفع تداخل افزونه‌های وردپرس](https://di9.ir/blog/%D8%AA%D8%AF%D8%A7%D8%AE%D9%84-%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87-%D9%87%D8%A7%DB%8C-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3) آمده است.
5. اگر فقط هنگام آپلود یا ساخت بکاپ خطا می‌آید، فایل را کوچک کنید یا بکاپ را روی بخش‌های کوچک‌تر بزنید.

### تنظیم لاگ بدون نمایش خطا

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

بعد از پیدا کردن مشکل، `WP_DEBUG` را خاموش کنید و فایل لاگ را پاک کنید؛ نباید برای همیشه روی سایت زنده بماند.

## اگر در پیشخوان گیر کرده‌اید

گاهی خطا درست وقتی رخ می‌دهد که به پیشخوان هم دسترسی ندارید. در این حالت باید از مدیر فایل هاست یا FTP کار کنید: ابتدا `wp-config.php` را ویرایش کنید و بعد، اگر لازم شد، پوشه‌ی افزونه‌ی مشکوک را به نام دیگری تغییر دهید تا غیرفعال شود. پیش از هر تغییر یک نسخه‌ی پشتیبان از فایل بگیرید.

## جلوگیری از تکرار

- افزونه‌های بدون استفاده را حذف کنید و تا حد ممکن یک افزونه برای یک کار داشته باشید.
- تصویرها را پیش از بارگذاری کوچک کنید ([بهینه‌سازی تصاویر وردپرس](https://di9.ir/blog/%D8%A8%D9%87%DB%8C%D9%86%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3)).
- کار سنگین مثل بکاپ کامل را در ساعت کم‌ترافیک و با افزونه‌ای که فایل را تکه‌تکه می‌کند انجام دهید ([بکاپ خودکار وردپرس](https://di9.ir/blog/%D8%A8%DA%A9%D8%A7%D9%BE-%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3)).

## وقتی هاست اجازه‌ی تغییر نمی‌دهد

در هاست‌های اشتراکی ارزان، سقف حافظه معمولاً از طرف ارائه‌دهنده قفل است و تنظیم شما نادیده گرفته می‌شود. دو راه می‌ماند: از پشتیبانی بخواهید سقف را متناسب با سایت بالا ببرد، یا سایت را سبک‌تر کنید. اگر سایت فروشگاهی است یا ترافیک بالایی دارد، شاید زمان ارتقای سرویس رسیده باشد. فهرست نکته‌های هاست را در [چک‌لیست هاست اشتراکی](https://di9.ir/blog/%DA%86%DA%A9-%D9%84%DB%8C%D8%B3%D8%AA-%D9%87%D8%A7%D8%B3%D8%AA-%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84) ببینید.

## خلاصه

- پیام می‌گوید اجرای PHP از سقف حافظه‌اش رد شده؛ مسیر فایل در پیام سرنخ مقصر است.
- سقف را در `wp-config.php` (WP_MEMORY_LIMIT)، تنظیمات PHP هاست و در صورت امکان `.htaccess` هماهنگ بالا ببرید.
- سقف واقعی را هاست تعیین می‌کند؛ از پشتیبانی بپرسید.
- لاگ خطا و غیرفعال‌سازی یکی‌یکی افزونه‌ها مقصر را پیدا می‌کند.
- بالا بردن سقف راه‌حل دائمی نیست؛ افزونه‌ی سنگین را عوض یا کار را کوچک کنید.

## پرسش‌های متداول

### خطای Allowed memory size در وردپرس یعنی چه؟

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

### حافظه‌ی وردپرس را چقدر بالا ببریم؟

از یک مقدار متوسط شروع کنید و فقط اگر لازم شد بیشتر کنید. بالا بردن بی‌حساب سقف علت را حل نمی‌کند و روی هاست اشتراکی ممکن است به خطای سقف منابع برسد. سقف واقعی را همیشه هاست تعیین می‌کند و می‌تواند تنظیم شما را نادیده بگیرد.

### چرا بعد از تغییر wp-config هنوز خطا می‌آید؟

چون سقف PHP هاست بالاتر از تنظیم وردپرس اعمال نمی‌شود. ثابت WP_MEMORY_LIMIT فقط تا سقف memory_limit خود PHP کار می‌کند. باید مقدار php.ini یا بخش تنظیمات PHP در پنل هاست را هم بالا ببرید یا از پشتیبانی بخواهید.

### آیا افزونه‌ها دلیل خطای حافظه‌اند؟

اغلب بله. افزونه‌ی ساخت بکاپ، صفحه‌ساز، گالری یا درون‌ریزی داده معمولاً بیشترین حافظه را می‌گیرند. با غیرفعال کردن یکی‌یکی و بررسی فایل ذکرشده در پیام خطا می‌توانید مقصر را پیدا کنید.
