رفع مشکل و ارورهای Constant WP_MEMORY_LIMIT و Constant WP_MAX_MEMORY_LIMIT

در این آموزش یاد بگیرید چطور ثابت‌های 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) تهیه کنید. این فایل بسیار حیاتی است و تغییر اشتباه در آن ممکن است سایت شما را از دسترس خارج کند.

  1. دسترسی به فایل: به پوشه ریشه (root) نصب وردپرس خود بروید (احتمالاً /public_html/) و فایل wp-config.php را پیدا کنید.
  2. ویرایش فایل: فایل را برای ویرایش باز کنید.
  3. پیدا کردن و حذف خطوط اضافی: به خطوط و فایل wp-config.php بروید. در این خطوط (یا کمی قبل و بعد از آن‌ها)، به دنبال کد‌هایی شبیه به موارد زیر بگردید:PHPdefine('WP_MEMORY_LIMIT', 'XXXM'); define('WP_MAX_MEMORY_LIMIT', 'YYYM'); (به جای XXX و YYY مقادیری مانند 256 یا 512 قرار دارد).
  4. تصمیم‌گیری:
    • اگر این ثابت‌ها در جای دیگری از فایل wp-config.php نیز تعریف شده‌اند (که دلیل اصلی خطا است): نسخه‌های تکراری در خطوط x۱ و x۲ یا نزدیک به آن‌ها را حذف کنید. مطمئن شوید که فقط یک بار تعریف معتبر از هر ثابت باقی بماند.
    • اگر مطمئن نیستید: می‌توانید خطوط x۱ و x۲ که خطا به آن‌ها اشاره کرده است را حذف کنید، یا اگر می‌خواهید مطمئن شوید که مقادیر حافظه شما به درستی تنظیم شده‌اند، این خطوط را به پایین‌تر از قسمت تنظیمات پیش‌فرض وردپرس در فایل wp-config.php منتقل کنید، یا نسخه‌های اضافی را که توسط افزونه‌ها یا به‌روزرسانی‌های قبلی اضافه شده‌اند، حذف نمایید.
    • بهترین روش: اغلب، این ثابت‌ها توسط افزونه‌ها یا خود وردپرس قبلاً تعریف شده‌اند و نیازی به تعریف مجدد در wp-config.php نیست. اما اگر می‌خواهید آن‌ها را تنظیم کنید، فقط یک بار این کار را انجام دهید. معمولاً این کدها درست قبل از خط /* That's all, stop editing! Happy blogging. */ قرار می‌گیرند.
  5. ذخیره تغییرات: فایل را ذخیره کرده و ببندید.
  6. تست: وب‌سایت خود را مجدداً بارگذاری (Refresh) کنید. خطاها باید ناپدید شده باشند.

❓سوال مخاطب:

مقادیر رو روی 256 گذاشتم و دو خط مربوطه رو بردم قبل از خط /* That’s all, stop editing! Happy blogging. */ و مشکل حل شد پس یعنی دیگه مشکلی نیست حل شده؟

✅بله، مشکل شما کاملاً حل شده است! تبریک می‌گویم. 🎉

دلیل خطا این بود که شما این ثابت‌ها را در دو جای مختلف از فایل wp-config.php تعریف کرده بودید (یا یکی در فایل و دیگری توسط PHP یا افزونه‌ای دیگر تعریف می‌شد، و تعریف شما در خطوط x۱ و x۲ تکراری بود).

وقتی شما خطوط مربوطه (تعریف‌های تکراری) را حذف کردید و تنها یک بار آن‌ها را در پایین فایل (قبل از /* That's all, stop editing! Happy blogging. */) قرار دادید، مشکل برطرف شد.

توضیح مختصر:

  1. خطا: اخطارهای Constant already defined (ثابت قبلاً تعریف شده) دقیقاً یعنی همین: کد سعی کرده ثابت WP_MEMORY_LIMIT را دو بار تعریف کند.
  2. راه حل شما: شما تعریف اضافی (آن‌هایی که باعث خطا می‌شدند) را حذف کردید و مطمئن شدید که تنها یک تعریف معتبر با مقدار 256M در انتهای فایل باقی بماند.
  3. نتیجه: سایت شما بدون نمایش اخطار بالا می‌آید و اکنون مقدار حافظه اختصاص داده شده به 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 استفاده کند، به شرطی که هاست اجازه دهد.

نتیجه:

  1. اگر سایت شما با ۲۵۶ مگابایت بدون خطا و روان کار می‌کند، نیازی به افزایش آن به ۵۱۲ مگابایت نیست.
  2. اگر باز هم خطاهایی مانند “Allowed memory size exhausted” دیدید یا هنگام کار با افزونه‌های سنگین دچار مشکل شدید، اگر هاست شما اجازه می‌دهد، مقدار را به ۵۱۲ مگابایت افزایش دهید.

❓سوال مخاطب:

هاست من میهن هاست هستش چطور بفهمم حداکثر مجاز چقدر هستش؟

برای اینکه متوجه شوید حداکثر مقدار مجاز memory_limit در سرویس میهن هاست شما چقدر است، چند راهکار اصلی دارید. مقدار نهایی توسط هاستینگ شما در سطح سرور تعیین می‌شود و تنظیمات شما در وردپرس (WP_MEMORY_LIMIT) نمی‌تواند از آن بیشتر باشد.

بهترین و مطمئن‌ترین روش‌ها به ترتیب زیر هستند:

۱. مشاهده از طریق پیشخوان وردپرس (ساده‌ترین راه)

اگر از وردپرس نسخه ۵.۲ به بالا استفاده می‌کنید، می‌توانید محدودیت واقعی حافظه PHP سرور خود را مستقیماً مشاهده کنید:

  1. وارد پیشخوان وردپرس سایتتان شوید.
  2. به بخش ابزارها (Tools) → سلامت سایت (Site Health) بروید.
  3. تب اطلاعات (Info) را انتخاب کنید.
  4. بخش سرور (Server) را باز کنید.
  5. جلوی گزینه محدودیت حافظه PHP (PHP Memory Limit)، حداکثر مقدار واقعی (مانند 256M یا 512M) که هاستینگ شما اجازه داده است، نمایش داده می‌شود.

۲. بررسی از طریق سی‌پنل (MultiPHP INI Editor)

اگر هاست شما از سی‌پنل استفاده می‌کند، می‌توانید به بخشی بروید که تنظیمات PHP را نشان می‌دهد:

  1. وارد سی‌پنل (cPanel) هاست خود شوید.
  2. در بخش نرم‌افزار (Software)، به دنبال گزینه MultiPHP INI Editor یا Select PHP Version بگردید.
  3. در بخش MultiPHP INI Editor:
    • دامنه خود را انتخاب کنید.
    • در لیست تنظیمات، مقدار مقابل memory_limit را مشاهده کنید. این همان حداکثر مجاز است.
  4. در بخش Select PHP Version (اگر وجود دارد):
    • روی دکمه Switch To PHP Options (یا معادل آن) کلیک کنید.
    • مقدار memory_limit در این لیست حداکثر مجاز را به شما نشان می‌دهد.

۳. تماس با پشتیبانی میهن هاست (دقیق‌ترین راه)

از آنجایی که میهن هاست پلن‌های مختلفی دارد و محدودیت حافظه ممکن است بر اساس نوع سرویس (اشتراکی، پربازدید و …) متفاوت باشد:

  • ارسال تیکت: بهترین راه این است که با پشتیبانی فنی میهن هاست تیکت بزنید و بپرسید که حداکثر مجاز memory_limit برای سرویس فعلی شما چقدر است.
  • این روش دقیق‌ترین اطلاعات را در مورد سقف منابع سرور شما ارائه می‌دهد.

❓سوال مخاطب:

سایت من 1024 زده چیکار کنم؟

عالیه! اینکه سایت شما در سلامت سایت (Site Health) یا تنظیمات PHP، مقدار memory_limit را 1024M (معادل ۱ گیگابایت) نمایش می‌دهد، به این معنی است که:

  1. سقف مجاز هاست (میهن هاست) شما حداقل ۱ گیگابایت است.
  2. شما اکنون می‌توانید مقدار 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' );

با این تنظیمات، شما مطمئن هستید که:

  1. مشکل خطای تکراری حل شده است.
  2. فضای کافی برای اجرای روان عملیات سایت و بخش مدیریت وجود دارد.
  3. از حداکثر فضای مجاز ۱ گیگابایتی که هاست به شما داده، استفاده بهینه کرده‌اید.

2 دیدگاه دربارهٔ «رفع مشکل و ارورهای Constant WP_MEMORY_LIMIT و Constant WP_MAX_MEMORY_LIMIT»

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سبد خرید
پیمایش به بالا