در این آموزش یاد بگیرید چطور ثابتهای WP_MEMORY_LIMIT را بدون خطا و به روشی استاندارد در فایل wp-config.php تعریف کنید.
مشکل:
وقتی سایت یا پیشخوان وردپرسی رو باز میکنم اول صفحه این خطاها رو میده:
⚠️متن اخطارها به شرح زیر است:
Warning: Constant WP_MAX_MEMORY_LIMIT already defined in /home/Site.ir/public_html/wp-config.php on line x1
Warning: Constant WP_MEMORY_LIMIT already defined in /home/Site.ir/public_html/wp-config.php on line x2
حل خطای تعریف مجدد ثابتهای حافظه در وردپرس
شما دو خطای Warning دریافت میکنید که نشان میدهد ثابتهای WP_MEMORY_LIMIT و WP_MAX_MEMORY_LIMIT قبلاً در فایل wp-config.php در خطوط x1 و x2 تعریف شدهاند. این خطاها معمولاً پس از بهروزرسانی PHP یا اعمال تغییرات در تنظیمات هاست یا وردپرس ظاهر میشوند، بهویژه اگر این ثابتها بیش از یک بار تعریف شده باشند.
برای حل این مشکل، شما باید فایل wp-config.php را ویرایش کرده و تعریفهای اضافی این ثابتها را حذف کنید.
مراحل رفع خطا
برای ویرایش فایل، میتوانید از File Manager سیپنل یا یک کلاینت FTP استفاده کنید:
‼توجه: قبل از هرگونه ویرایش، همیشه از فایل
wp-config.phpیک نسخه پشتیبان (Backup) تهیه کنید. این فایل بسیار حیاتی است و تغییر اشتباه در آن ممکن است سایت شما را از دسترس خارج کند.
- دسترسی به فایل: به پوشه ریشه (root) نصب وردپرس خود بروید (احتمالاً
/public_html/) و فایلwp-config.phpرا پیدا کنید. - ویرایش فایل: فایل را برای ویرایش باز کنید.
- پیدا کردن و حذف خطوط اضافی: به خطوط x۱ و x۲ فایل
wp-config.phpبروید. در این خطوط (یا کمی قبل و بعد از آنها)، به دنبال کدهایی شبیه به موارد زیر بگردید:PHPdefine('WP_MEMORY_LIMIT', 'XXXM'); define('WP_MAX_MEMORY_LIMIT', 'YYYM');(به جایXXXوYYYمقادیری مانند256یا512قرار دارد). - تصمیمگیری:
- اگر این ثابتها در جای دیگری از فایل
wp-config.phpنیز تعریف شدهاند (که دلیل اصلی خطا است): نسخههای تکراری در خطوط x۱ و x۲ یا نزدیک به آنها را حذف کنید. مطمئن شوید که فقط یک بار تعریف معتبر از هر ثابت باقی بماند. - اگر مطمئن نیستید: میتوانید خطوط x۱ و x۲ که خطا به آنها اشاره کرده است را حذف کنید، یا اگر میخواهید مطمئن شوید که مقادیر حافظه شما به درستی تنظیم شدهاند، این خطوط را به پایینتر از قسمت تنظیمات پیشفرض وردپرس در فایل
wp-config.phpمنتقل کنید، یا نسخههای اضافی را که توسط افزونهها یا بهروزرسانیهای قبلی اضافه شدهاند، حذف نمایید. - بهترین روش: اغلب، این ثابتها توسط افزونهها یا خود وردپرس قبلاً تعریف شدهاند و نیازی به تعریف مجدد در
wp-config.phpنیست. اما اگر میخواهید آنها را تنظیم کنید، فقط یک بار این کار را انجام دهید. معمولاً این کدها درست قبل از خط/* That's all, stop editing! Happy blogging. */قرار میگیرند.
- اگر این ثابتها در جای دیگری از فایل
- ذخیره تغییرات: فایل را ذخیره کرده و ببندید.
- تست: وبسایت خود را مجدداً بارگذاری (Refresh) کنید. خطاها باید ناپدید شده باشند.
❓سوال مخاطب:
مقادیر رو روی 256 گذاشتم و دو خط مربوطه رو بردم قبل از خط /* That’s all, stop editing! Happy blogging. */ و مشکل حل شد پس یعنی دیگه مشکلی نیست حل شده؟
✅بله، مشکل شما کاملاً حل شده است! تبریک میگویم. 🎉
دلیل خطا این بود که شما این ثابتها را در دو جای مختلف از فایل wp-config.php تعریف کرده بودید (یا یکی در فایل و دیگری توسط PHP یا افزونهای دیگر تعریف میشد، و تعریف شما در خطوط x۱ و x۲ تکراری بود).
وقتی شما خطوط مربوطه (تعریفهای تکراری) را حذف کردید و تنها یک بار آنها را در پایین فایل (قبل از /* That's all, stop editing! Happy blogging. */) قرار دادید، مشکل برطرف شد.
توضیح مختصر:
- خطا: اخطارهای
Constant already defined(ثابت قبلاً تعریف شده) دقیقاً یعنی همین: کد سعی کرده ثابتWP_MEMORY_LIMITرا دو بار تعریف کند. - راه حل شما: شما تعریف اضافی (آنهایی که باعث خطا میشدند) را حذف کردید و مطمئن شدید که تنها یک تعریف معتبر با مقدار
256Mدر انتهای فایل باقی بماند. - نتیجه: سایت شما بدون نمایش اخطار بالا میآید و اکنون مقدار حافظه اختصاص داده شده به PHP نیز به درستی روی ۲۵۶ مگابایت تنظیم شده است. ✅
❓سوال مخاطب:
میخوام در مورد مقادیر 256 و 512 بیشتر بدونم?
تنظیم ثابتهایی مانند 256M و 512M در فایل wp-config.php مربوط به مدیریت حافظه (RAM) در دسترس اسکریپتهای PHP وردپرس است. این تنظیمات نقش بسیار مهمی در جلوگیری از خطاهای کمبود حافظه (Memory Exhausted) و تضمین عملکرد روان وبسایت، بهخصوص هنگام اجرای عملیات سنگین دارند.
مفاهیم اصلی محدودیت حافظه در وردپرس
شما در وردپرس معمولاً با دو ثابت مهم سروکار دارید که هر دو با مقدار مگابایت (M) تعریف میشوند:
۱. WP_MEMORY_LIMIT (حافظه عمومی)
- کاربرد: این ثابت حداکثر حافظهای را تعیین میکند که اسکریپتهای سمت بازدیدکننده (Frontend) وردپرس (مانند بارگذاری صفحات، پستها و …) میتوانند مصرف کنند.
- مقادیر پیشفرض/توصیهشده:
- پیشفرض وردپرس: معمولاً ۴۰ مگابایت (MB) است.
- حداقل توصیه شده برای اکثر سایتها: ۱۲۸ مگابایت (MB).
- مقدار رایج و مناسب: ۲۵۶ مگابایت (256M).
۲. WP_MAX_MEMORY_LIMIT (حافظه بخش مدیریت)
- کاربرد: این ثابت حداکثر حافظهای را تعیین میکند که اسکریپتهای سمت مدیریت (Backend) وردپرس (مانند کار در پیشخوان، آپلود فایل، اجرای افزونههای سنگین مانند المنتور/ووکامرس، یا عملیات پشتیبانگیری) میتوانند مصرف کنند. این عملیات اغلب سنگینتر هستند.
- مقادیر توصیهشده:
- این مقدار معمولاً باید بیشتر یا مساوی با
WP_MEMORY_LIMITباشد. - مقادیر رایج و بالا: ۲۵۶ مگابایت (256M) یا ۵۱۲ مگابایت (512M).
- این مقدار معمولاً باید بیشتر یا مساوی با
تفاوت مقادیر ۲۵۶ مگابایت و ۵۱۲ مگابایت
انتخاب بین ۲۵۶ مگابایت و ۵۱۲ مگابایت بستگی به نیاز و پیچیدگی سایت شما دارد:
| ویژگی | ۲۵۶ مگابایت (256M) | ۵۱۲ مگابایت (512M) |
| میزان تخصیص | مناسب (Good) | عالی (Excellent) |
| نوع سایت | اکثر وبسایتهای استاندارد وردپرس، وبلاگها، سایتهای شرکتی کوچک و متوسط با تعداد معقولی افزونه. | وبسایتهای سنگین، فروشگاههای ووکامرس (WooCommerce) بزرگ، سایتهای دارای افزونههای صفحهساز پیچیده (مثل المنتور Pro)، سایتهای چندزبانه، یا سایتهای پربازدید. |
| مزیت | مصرف معقول از منابع هاست، جلوگیری از کمبود حافظه در بیشتر سناریوها. | بیشترین حاشیه امن در اجرای عملیات سنگین، جلوگیری از خطای کمبود حافظه در سناریوهای پیچیده و پرتقاضا. |
| نکته | برای بسیاری از هاستهای اشتراکی، این بالاترین مقداری است که مجاز به تنظیم آن هستید. | اگر هاست شما اجازه دهد و سایت شما سنگین است، این مقدار اطمینان بیشتری میدهد. |
نکته بسیار مهم: سقف حافظه هاست (PHP memory_limit)
توجه داشته باشید که مقادیر WP_MEMORY_LIMIT و WP_MAX_MEMORY_LIMIT نمیتوانند از حداکثر حافظهای که میزبان (هاست) شما برای PHP تعیین کرده است (PHP memory_limit)، فراتر روند.
- اگر هاست شما PHP
memory_limitرا روی ۲۵۶ مگابایت تنظیم کرده باشد، حتی اگر شما درwp-config.phpمقدار را ۵۱۲ مگابایت بگذارید، وردپرس فقط تا ۲۵۶ مگابایت میتواند استفاده کند. - همیشه ابتدا سقف حافظه PHP هاست خود را از طریق سیپنل (MultiPHP INI Editor) یا با پرسیدن از پشتیبانی هاست بررسی کنید.
- تنظیم
WP_MEMORY_LIMITدر واقع درخواست شما از وردپرس است تا تا سقف معینی از حافظه PHP استفاده کند، به شرطی که هاست اجازه دهد.
نتیجه:
- اگر سایت شما با ۲۵۶ مگابایت بدون خطا و روان کار میکند، نیازی به افزایش آن به ۵۱۲ مگابایت نیست.
- اگر باز هم خطاهایی مانند “Allowed memory size exhausted” دیدید یا هنگام کار با افزونههای سنگین دچار مشکل شدید، اگر هاست شما اجازه میدهد، مقدار را به ۵۱۲ مگابایت افزایش دهید.
❓سوال مخاطب:
هاست من میهن هاست هستش چطور بفهمم حداکثر مجاز چقدر هستش؟
برای اینکه متوجه شوید حداکثر مقدار مجاز memory_limit در سرویس میهن هاست شما چقدر است، چند راهکار اصلی دارید. مقدار نهایی توسط هاستینگ شما در سطح سرور تعیین میشود و تنظیمات شما در وردپرس (WP_MEMORY_LIMIT) نمیتواند از آن بیشتر باشد.
بهترین و مطمئنترین روشها به ترتیب زیر هستند:
۱. مشاهده از طریق پیشخوان وردپرس (سادهترین راه)
اگر از وردپرس نسخه ۵.۲ به بالا استفاده میکنید، میتوانید محدودیت واقعی حافظه PHP سرور خود را مستقیماً مشاهده کنید:
- وارد پیشخوان وردپرس سایتتان شوید.
- به بخش ابزارها (Tools) → سلامت سایت (Site Health) بروید.
- تب اطلاعات (Info) را انتخاب کنید.
- بخش سرور (Server) را باز کنید.
- جلوی گزینه محدودیت حافظه PHP (PHP Memory Limit)، حداکثر مقدار واقعی (مانند
256Mیا512M) که هاستینگ شما اجازه داده است، نمایش داده میشود.
۲. بررسی از طریق سیپنل (MultiPHP INI Editor)
اگر هاست شما از سیپنل استفاده میکند، میتوانید به بخشی بروید که تنظیمات PHP را نشان میدهد:
- وارد سیپنل (cPanel) هاست خود شوید.
- در بخش نرمافزار (Software)، به دنبال گزینه MultiPHP INI Editor یا Select PHP Version بگردید.
- در بخش MultiPHP INI Editor:
- دامنه خود را انتخاب کنید.
- در لیست تنظیمات، مقدار مقابل
memory_limitرا مشاهده کنید. این همان حداکثر مجاز است.
- در بخش Select PHP Version (اگر وجود دارد):
- روی دکمه Switch To PHP Options (یا معادل آن) کلیک کنید.
- مقدار
memory_limitدر این لیست حداکثر مجاز را به شما نشان میدهد.
۳. تماس با پشتیبانی میهن هاست (دقیقترین راه)
از آنجایی که میهن هاست پلنهای مختلفی دارد و محدودیت حافظه ممکن است بر اساس نوع سرویس (اشتراکی، پربازدید و …) متفاوت باشد:
- ارسال تیکت: بهترین راه این است که با پشتیبانی فنی میهن هاست تیکت بزنید و بپرسید که حداکثر مجاز
memory_limitبرای سرویس فعلی شما چقدر است. - این روش دقیقترین اطلاعات را در مورد سقف منابع سرور شما ارائه میدهد.
❓سوال مخاطب:
سایت من 1024 زده چیکار کنم؟
عالیه! اینکه سایت شما در سلامت سایت (Site Health) یا تنظیمات PHP، مقدار memory_limit را 1024M (معادل ۱ گیگابایت) نمایش میدهد، به این معنی است که:
- سقف مجاز هاست (میهن هاست) شما حداقل ۱ گیگابایت است.
- شما اکنون میتوانید مقدار
WP_MEMORY_LIMITوWP_MAX_MEMORY_LIMITرا در فایلwp-config.phpتا ۱ گیگابایت تنظیم کنید، اگرچه برای اکثر سایتها این مقدار بیش از حد است.
توصیههای تنظیم حافظه (Memory Limit)
از آنجایی که هاست شما تا ۱ گیگابایت فضا در اختیار شما قرار داده، میتوانید به راحتی سایت خود را برای عملکرد بهینه تنظیم کنید:
۱. تنظیم WP_MEMORY_LIMIT
توصیه میشود مقدار حافظه را متناسب با نیاز سایت تنظیم کنید تا از مصرف بیدلیل منابع سرور (که روی قیمت یا عملکرد سرویس اشتراکی تاثیر میگذارد) جلوگیری شود.
- اگر سایت شما استاندارد است (وبلاگ، شرکتی کوچک): همان ۲۵۶ مگابایت (256M) که تنظیم کردهاید، کاملاً کافی و مناسب است.
- اگر سایت شما سنگین است (ووکامرس بزرگ، المنتور، چندزبانه): میتوانید آن را به ۵۱۲ مگابایت (512M) افزایش دهید تا حاشیه امن بیشتری داشته باشید.
۲. تنظیم WP_MAX_MEMORY_LIMIT
این ثابت برای بخش مدیریت (Backend) است و معمولاً توصیه میشود کمی بالاتر از WP_MEMORY_LIMIT باشد، چون عملیات مدیریتی سنگینترند.
- اگر
WP_MEMORY_LIMITرا ۲۵۶M گذاشتید:WP_MAX_MEMORY_LIMITرا روی ۵۱۲M تنظیم کنید. - اگر
WP_MEMORY_LIMITرا ۵۱۲M گذاشتید:WP_MAX_MEMORY_LIMITرا روی ۵۱۲M یا ۷۶۸M (اگر مشکل خاصی داشتید) تنظیم کنید.
تنظیم پیشنهادی (برای اکثر سایتهای سنگین و استاندارد):
PHP
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
با این تنظیمات، شما مطمئن هستید که:
- مشکل خطای تکراری حل شده است.
- فضای کافی برای اجرای روان عملیات سایت و بخش مدیریت وجود دارد.
- از حداکثر فضای مجاز ۱ گیگابایتی که هاست به شما داده، استفاده بهینه کردهاید.





سلام
خیلی متن خوب و کاملی بود ممنون از راهنمایی شما
من همیشه به سایت شما سر میزنم
خداقوت
علیک سلام خیلی خوشحالم که بکارت اومد خوشحالم کنارمی سوالی مشکلی بود بپرسید موفق و پیروز باشید