وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

خطای Allowed memory size exhausted در وردپرس را حل کنیم

خطای کمبود حافظه PHP در وردپرس را با خواندن متن خطا، تشخیص افزونه و تنظیم کنترل‌شده memory_limit برطرف کنید.

انتشار:
توسط تیم فنی نت‌آرام
۵ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله خطای Allowed memory size exhausted در وردپرس را حل کنیم در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
خطای Allowed memory size of … bytes exhausted می‌گوید یک درخواست PHP به سقف حافظه‌ای رسیده که در اختیارش بوده است. ممکن است سایت هنگام بازکردن پیشخوان، ساخت تصویر بندانگشتی یا اجرای یک افزونه متوقف شود. این پیام ثابت نمی‌کند کل RAM سرور پر شده؛ محدودیت حافظهٔ همان فرایند PHP با RAM کل سرور فرق دارد. پس پیش از قراردادن عددی بزرگ در فایل تنظیمات، باید بفهمیم کدام درخواست و کدام لایه به سقف رسیده است.

متن کامل خطا را نگه دارید

اگر پیام فایل و شمارهٔ خط نشان می‌دهد، مسیر را یادداشت کنید، اما آن را در شبکه‌های عمومی منتشر نکنید؛ نام پوشه یا اطلاعات میزبان ممکن است خصوصی باشد. زمان رخداد، صفحه‌ای که باز می‌کردید و آخرین تغییر را هم ثبت کنید. مثلاً اگر خطا بلافاصله پس از ساخت گالری بزرگ ظاهر شده، به همان عملیات مربوط است؛ اگر همهٔ صفحات خراب‌اند، علت می‌تواند گسترده‌تر باشد.
در File Manager یا پنل گزارش خطا، لاگ PHP همان بازه را ببینید. دنبال Allowed memory size و نام افزونه یا فایل باشید. اگر روی یک افزونهٔ مشخص تکرار می‌شود، ابتدا نسخه و نیازمندی آن را بررسی کنید. زیادکردن حافظه ممکن است خطای برنامه‌نویسی یا حلقهٔ بی‌پایان را پنهان کند و فقط دیرتر سایت را متوقف کند.

مقدار مؤثر PHP را از پنل بخوانید

در cPanel معمولاً مسیر MultiPHP INI Editor برای دامنه مقدار memory_limit را نشان می‌دهد. در DirectAdmin هم تنظیم PHP برای همان دامنه ممکن است در بخش مدیریت PHP باشد. مقدار CLI و PHP سایت می‌تواند فرق کند؛ برای همین دستور php -i در SSH الزاماً مقدار صفحهٔ وردپرس را نشان نمی‌دهد. از پنل همان دامنه بخوانید یا از میزبان بخواهید مقدار مؤثر PHP وب را تأیید کند.
این سقف را با مقدارهای WP_MEMORY_LIMIT و WP_MAX_MEMORY_LIMIT اشتباه نگیرید. وردپرس می‌تواند درخواست افزایش حافظه کند، اما PHP یا میزبان می‌تواند اجازه ندهد. راهنمای رسمی ثابت‌های wp-config.php هم هشدار می‌دهد بالا بردن حافظه باید با ظرفیت محیط هماهنگ باشد.

اگر افزونهٔ مشخصی عامل است، همان را جدا آزمایش کنید

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

محدودیت را فقط به اندازهٔ ظرفیت پلن بالا ببرید

اگر میزبان اجازه می‌دهد و لاگ نشان می‌دهد کار واقعی به حافظهٔ بیشتری نیاز دارد، مقدار را در پنل برای همان دامنه افزایش دهید. مثلاً تغییر از 128M به 256M می‌تواند آزمون معقولی باشد، اگر پلن و میزبان آن را پشتیبانی کنند. این مثال عدد قطعی نیست؛ نیاز یک وبلاگ ساده با فروشگاه بزرگ یکسان نیست. مقدار را روی -1 یا «نامحدود» نگذارید. سرور همچنان منابع محدود دارد و چند درخواست هم‌زمان می‌توانند مجموعاً RAM را مصرف کنند.
اگر با دسترسی محدود از wp-config.php استفاده می‌کنید، از فایل یک نسخه بگیرید و فقط یک ثابت را یک بار، بالاتر از خط That's all, stop editing! و پیش از بارگذاری فایل‌های بعدی قرار دهید:
کد / دستورdefine( 'WP_MEMORY_LIMIT', '256M' );
اگر ثابت از قبل تعریف شده است، تعریف دومی اضافه نکنید. اگر PHP سقف پایین‌تری دارد، این خط نمی‌تواند آن را به‌زور افزایش دهد؛ از پشتیبانی دربارهٔ مقدار مجاز سؤال کنید.

بعد از تغییر، همان درخواست را دوباره بررسی کنید

تنظیم را ذخیره کنید، صفحهٔ خطادار را دوباره باز کنید و زمان آزمون را ثبت کنید. یک صفحهٔ عادی و صفحهٔ مدیریت را هم امتحان کنید. اگر خطا رفع شد، مقدار را همین‌جا نگه دارید و رشد مصرف حافظه را در زمان شلوغی زیر نظر بگیرید. اگر پیام تازه‌ای آمد، متن کاملش را بخوانید؛ ممکن است خطای قبلی پنهان شده و خطای دیگری دیده شود.
اگر مقدار مؤثر نزدیک سقف است یا سایت همزمان خطای کندی و قطع‌شدن دارد، میزبان باید مصرف منابع و لاگ PHP را بررسی کند. فقط افزایش RAM سرور برای هر خطای PHP پاسخ درست نیست. مقالهٔ تشخیص فشار واقعی حافظهٔ VPS توضیح می‌دهد مصرف حافظهٔ خود سرور چگونه از سقف حافظهٔ یک درخواست جدا می‌شود. با نگه‌داشتن زمان، صفحه و نام افزونه، پشتیبانی هم زودتر به علت می‌رسد.
اگر پیشخوان باز نمی‌شود، همهٔ افزونه‌ها را با تغییر نام پوشهٔ اصلی یک‌جا از کار نیندازید؛ سایت ممکن است به افزونه‌های ضروری وابسته باشد. نام افزونهٔ حاضر در خطا را به میزبان بدهید. اگر نسخهٔ آزمایشی دارید، همان مورد را آنجا خاموش کنید. تغییر در سایت زنده را با نسخهٔ پشتیبان و در ساعت کم‌ترافیک انجام دهید تا اگر فرم یا خرید مختل شد بتوانید برگردید.
تنظیم حافظهٔ وردپرس ممکن است به بخش مدیریت مقدار جداگانه‌ای بدهد، اما آن مقدار هم نباید از سقف واقعی PHP بیشتر باشد. پس از تغییر، مقدار را در پنل بخوانید و همان صفحه را آزمایش کنید. اگر خطا هنوز همان عدد قبلی را نشان می‌دهد، احتمال دارد فایل مربوط به نصب دیگری را ویرایش کرده‌اید یا PHP وب مقدار را از تنظیم دیگری می‌گیرد.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام