اگر پس از سفارش طراحی در سیستم مدیریت محتوای وردپرس، بسیاری از خطاها و کندیهای احتمالی، بهطور مستقیم با میزان حافظه اختصاصیافته به PHP در ارتباط است. هنگامی که حجم پردازشها، افزونهها، قالبها یا عملیات سنگین بیشتر از مقدار حافظه مجاز PHP شود، وردپرس نمیتواند بهدرستی اجرا شود و کاربر با خطاهایی مانند Allowed memory size exhausted روبهرو میشود. به همین دلیل، افزایش صحیح و اصولی Memory Limit یکی از مهمترین اقداماتی است که هر مدیر سایت باید آن را بداند.
در این مقاله، بهصورت کامل و مرحلهبهمرحله روشهای مختلف افزایش محدودیت حافظه PHP در وردپرس را بررسی میکنیم.
روش های افزایش محدودیت حافظه PHP
افزایش محدودیت حافظه وردپرس به چندین روش مختلف امکانپذیر است. انتخاب هر یک از این روشها به نوع پیکربندی سرور شما و سطح دسترسیتان به فایلهای ریشه (Root) سایت بستگی دارد. کاربردیترین و متداولترین راهها برای رفع این محدودیت عبارتند از:
از طریق فایل htaccess
در صورتی که هنگام ورود به پیشخوان وردپرس با خطای Internal Server Error یا Fatal Error مواجه شدید، میتوانید با استفاده از فایل htaccess. این مشکل را به راحتی برطرف کنید. برای این منظور، ابتدا وارد پنل مدیریت هاست (مانند سیپنل) شوید و روی گزینه File Manager کلیک کنید تا به صفحه مدیریت فایلها در هاست هدایت شوید.
سپس به مسیر public_html مراجعه کرده و به دنبال فایل .htaccess بگردید. با راستکلیک کردن بر روی این فایل، گزینه Edit را انتخاب کنید.
- نکته مهم: در صورتی که این فایل را نمیبینید، روی گزینه Settings (در گوشه بالا سمت راست) کلیک کرده و گزینه Show Hidden Files را تیک بزنید و ذخیره کنید.
پس از باز شدن صفحه ویرایش فایل، قطعه کد زیر را به فایل اضافه کرده و روی گزینه Save کلیک کنید:
php_value memory_limit 128M
در صورتی که فایل .htaccess در هاست شما وجود نداشت، کافی است با استفاده از ویرایشگرهایی مثل Notepad یک فایل با نام .htaccess (دقت کنید نقطه در ابتدا باشد) بسازید و آن را آپلود کنید؛ یا در همان مسیر public_html روی گزینه New File کلیک کرده و فایلی با همین نام ایجاد کنید. اگر محدودیتی از طرف شرکت میزبانی اعمال نشده باشد، این کد به راحتی مشکل شما را حل خواهد کرد.
برطرف کردن محدویت با فایل wp-config.php
اگر روش قبلی مشکل را حل نکرد، میتوانید سراغ فایل اصلی پیکربندی وردپرس بروید. در همان مسیر public_html هاست، به دنبال فایل wp-config.php بگردید. بعد از راستکلیک روی فایل و انتخاب گزینه Edit، کد زیر را در فایل اضافه کنید:
define(‘WP_MEMORY_LIMIT’, ‘128M’);
دقت کنید که کدهای فوق را باید در بخشی که سایر کدهای define قرار دارند، یعنی درست قبل از خط زیر اضافه کنید:
/* That’s all, stop editing! Happy blogging. */
بعد از ذخیره فایل، محدودیت حافظه در سطح وردپرس افزایش یافته و در بسیاری از موارد خطاهای مربوط به کمبود حافظه برطرف میشوند.
افزایش Memory limit از طریق MultiPHP INI Editor
اگر از کنترلپنل هاست cPanel استفاده میکنید، یکی از سادهترین و استانداردترین روشها استفاده از ابزار داخلی آن است. وارد سیپنل شوید و در بخش Software، گزینه MultiPHP INI Editor را انتخاب کنید. در صفحه باز شده، از منوی کشویی، نام دامنه مورد نظر خود را انتخاب نمایید. لیستی از تنظیمات PHP نمایش داده میشود. عبارت memory_limit را پیدا کرده و مقدار مقابل آن را به مقدار دلخواه (مثلاً 256M یا 512M) تغییر دهید. در نهایت روی دکمه Apply کلیک کنید تا تنظیمات بلافاصله روی تمام سایت اعمال شود.

چرا فایل htaccess را در هاست پیدا نمیکنم؟
برخی از مهمترین دلایل مختلف پیدا نکردن فایل .htaccess در هاست عبارتند از:
- فایل مخفی است (Hidden File) و نمایش داده نمیشود: فایل htaccess. یک فایل مخفی محسوب میشود و در بسیاری از هاستها بهصورت پیشفرض نمایش داده نمیشود.
راهحل:
در File Manager سیپنل:
- بالا سمت راست روی Settings کلیک کنید؛
- گزینه Show Hidden Files (dotfiles) را فعال کنید؛
- روی Save بزنید؛
- اکنون صفحه را Refresh کنید؛ فایل نمایش داده خواهد شد.
- فایل htaccess هنوز ایجاد نشده است: اگر وردپرس تازه نصب شده باشد یا تنظیمات پیوندهای یکتا (Permalinks) تغییر نکرده باشد، ممکن است وردپرس هنوز فایل htaccess. را نساخته باشد.
راهحل:
- از پیشخوان وردپرس وارد مسیر تنظیمات > پیوندهای یکتا شوید؛
- بدون تغییر، فقط دکمه ذخیره تغییرات را بزنید؛
- وردپرس بهطور خودکار فایل htaccess. را ایجاد میکند.
- فایل در مسیر اشتباه جستجو میشود: برخی کاربران اشتباهی در مسیر دیگری میگردند. مسیر صحیح public_html است. (یا اگر وردپرس در سابفولدر نصب شده، وارد پوشه مربوطه شوید)
- هاست اجازه ساخت یا نمایش فایل htaccess را نمیدهد: در برخی هاستهای ارزانقیمت یا اشتراکی ممکن است سرور اجازه استفاده از htaccess را ندهد. در این صورت میتوانید با پشتیبانی هاست تماس بگیرید و درخواست فعالسازی AllowOverride All بدهید.
- فایل حذف شده است: گاهی در اثر نصب افزونهها، تغییرات اشتباه یا انتقال سایت، فایل htaccess. حذف میشود.
راهحل:
فایل را خودتان بهصورت دستی بسازید:
- در مسیر public_html روی New File کلیک کنید؛
- نام فایل را دقیقا اینگونه وارد کنید: htaccess.
چرا مشکل memory limit PHP به وجود می آید؟
خطای Memory Limit PHP زمانی رخ میدهد که اسکریپتهای PHP (مانند وردپرس، قالب یا افزونهها) برای اجرای عملیات خود به حافظهای بیشتر از مقدار تعیینشده در سرور نیاز داشته باشند. هر هاست مقدار مشخصی از حافظه را برای اجرای PHP تعیین میکند و اگر مصرف از این مقدار بیشتر شود، اجرای کد متوقف شده و خطای Allowed memory size exhausted نمایش داده میشود. دلایل زیر نیز میتوانند باعث بروز این خطا شوند:
- استفاده از افزونههای سنگین یا ناسازگار: برخی افزونهها مخصوصاً افزونههای صفحهساز، فروشگاهی (مثل ووکامرس)، افزونههای امنیتی یا بکاپگیری، مصرف حافظه بالایی دارند. همچنین افزونههای قدیمی یا ناسازگار با نسخه PHP میتوانند باعث مصرف غیرعادی حافظه شوند.
- قالبهای سنگین و غیربهینه: قالبهایی که کدنویسی بهینهای ندارند یا دارای امکانات گرافیکی و دموهای حجیم هستند، ممکن است در هنگام بارگذاری، حافظه زیادی مصرف کنند.
- حجم بالای تصاویر یا فایلهای رسانهای: آپلود تصاویر با حجم بالا یا پردازش همزمان تعداد زیادی تصویر (مثلاً هنگام درونریزی محصولات) میتواند مصرف حافظه را افزایش دهد.
- محدودیت پایین حافظه در هاست: برخی شرکتهای هاستینگ بهصورت پیشفرض مقدار حافظه PHP را روی 64M یا 128M تنظیم میکنند که برای سایتهای حرفهای یا فروشگاهی کافی نیست.
- اجرای همزمان پردازشهای سنگین: عملیاتی مانند درونریزی محصولات، ساخت نسخه پشتیبان، بهروزرسانی همزمان افزونهها و اسکن امنیتی میتوانند باعث افزایش مصرف حافظه شوند.
- بدافزار یا کدهای مخرب: در برخی موارد، وجود فایلهای مخرب یا اسکریپتهای آلوده در هاست باعث مصرف غیرعادی منابع سرور میشود.
- نسخه قدیمی PHP: نسخههای قدیمی PHP مصرف حافظه بیشتری دارند و بهینه نیستند. استفاده از نسخههای جدیدتر (مثل PHP 8.x) معمولاً عملکرد بهتر و مصرف بهینهتری دارد.