آیا تا به حال با آن لحظه دلهره‌آور مواجه شده‌اید که در حال نصب یک افزونه جدید یا بارگذاری یک تصویر باکیفیت هستید و ناگهان صفحه سفید مرگ یا پیامی ترسناک با عنوان “Fatal error: Allowed memory size of…” ظاهر می‌شود؟ اگر پاسخ مثبت است، نگران نباشید؛ شما تنها نیستید. این یکی از رایج‌ترین چالش‌هایی است که مدیران سایت‌های وردپرسی، از مبتدی تا حرفه‌ای، با آن دست و پنجه نرم می‌کنند. خطای کمبود حافظه (Memory Limit Exceeded) دقیقاً مثل این است که سعی کنید یک لیوان بزرگ آب را در یک فنجان کوچک اسپرسو بریزید؛ سرریز می‌شود و همه چیز را به هم می‌ریزد.

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

خطای میزان حافظه وردپرس چیست و چه زمانی رخ می‌دهد؟

قبل از اینکه آچار و پیچ‌گوشتی را برداریم و به جان فایل‌های سایت بیفتیم، بیایید دقیقاً بفهمیم که با چه چیزی طرف هستیم. وردپرس یک سیستم مدیریت محتوا (CMS) است که با زبان برنامه‌نویسی PHP نوشته شده است. PHP یک زبان سمت سرور است، به این معنی که برای اجرا شدن نیاز به منابع سخت‌افزاری سرور دارد. یکی از حیاتی‌ترین این منابع، حافظه موقت یا همان RAM است.

تصور کنید سرور شما یک میز کار است و PHP کارگری است که روی آن میز کار می‌کند. PHP Memory Limit یا محدودیت حافظه PHP، دقیقاً به اندازه آن میز کار اشاره دارد. وقتی شما یک درخواست به سایت می‌فرستید (مثلاً باز کردن پیشخوان وردپرس)، PHP شروع به چیدن پرونده‌ها (اسکریپت‌ها) روی این میز می‌کند. حالا اگر افزونه‌های سنگین نصب کرده باشید یا قالبتان کدهای پیچیده‌ای داشته باشد، پرونده‌ها آنقدر زیاد می‌شوند که دیگر جایی روی میز باقی نمی‌ماند. اینجاست که هاست فریاد می‌زند: «جا ندارم!» و فرآیند پردازش را متوقف می‌کند.

این خطا معمولاً زمانی رخ می‌دهد که شما از محدودیت پیش‌فرض تعیین شده توسط ارائه‌دهنده هاست یا خود وردپرس فراتر بروید. هاستینگ‌ها برای اینکه یک سایت نتواند کل منابع سرور را ببلعد و باعث کندی سایر سایت‌ها شود، یک سقف مصرف رم (مثلاً ۶۴ یا ۱۲۸ مگابایت) برای هر اکانت تعیین می‌کنند. وقتی اسکریپت‌های شما بیش از این مقدار فضا طلب کنند، خطای معروف رخ می‌دهد.

نشانه‌های خطا کمبود حافظه در وردپرس

تشخیص خطای کمبود حافظه همیشه آسان نیست، زیرا گاهی اوقات خودش را پشت چهره‌های متفاوتی پنهان می‌کند. اما شایع‌ترین نشانه‌ها عبارتند از:

  1. پیام خطای مستقیم (Fatal Error): این واضح‌ترین نشانه است. شما دقیقاً متنی شبیه به این را در صفحه می‌بینید: Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 123456 bytes) in /home/user/public_html/wp-includes/plugin.php on line 123 این پیام دقیقاً به شما می‌گوید که چقدر حافظه داشتید (مثلاً ۶۴ مگابایت) و اسکریپت چقدر حافظه اضافی نیاز داشته که تامین نشده است.
  2. صفحه سفید مرگ (White Screen of Death – WSoD): گاهی اوقات وردپرس آنقدر شوکه می‌شود که حتی فرصت نمی‌کند پیام خطا را چاپ کند! شما سایت را باز می‌کنید و با یک صفحه کاملاً سفید و خالی مواجه می‌شوید. این حالت بسیار ترسناک است اما نگران نباشید، در ۹۰ درصد مواقع دلیلش همین کمبود حافظه است.
  3. کندی شدید یا خطای ۵۰۰ در پیشخوان: ممکن است سایت برای کاربران عادی باز شود، اما وقتی می‌خواهید وارد بخش مدیریت (wp-admin) شوید، با کندی عجیب یا خطای Internal Server Error 500 مواجه شوید. دلیلش این است که بخش مدیریت وردپرس به دلیل بارگذاری تمام افزونه‌ها، معمولاً حافظه بیشتری نسبت به بخش کاربری نیاز دارد.
  4. مشکل در بارگذاری تصاویر: اگر هنگام آپلود عکس در بخش رسانه با خطای HTTP روبرو می‌شوید یا پردازش تصویر بندانگشتی شکست می‌خورد، احتمالاً حافظه برای پردازش آن تصویر بزرگ کافی نیست.

پیش نیازهای افزایش حافظه

دسترسی به فایل‌های وردپرس

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

استفاده از FTP یا File Manager

دو راه اصلی برای دسترسی به فایل‌ها وجود دارد:

  1. FTP (پروتکل انتقال فایل): این روش حرفه‌ای‌تر است. شما با استفاده از نرم‌افزارهایی مثل FileZilla و اطلاعاتی که هاست به شما داده (آدرس سرور، نام کاربری و رمز عبور)، به فایل‌های سایت متصل می‌شوید. مزیت این روش این است که اگر اشتباهی کردید و سایت از دسترس خارج شد، ارتباط FTP معمولاً قطع نمی‌شود و می‌توانید سریعاً تغییرات را به حالت قبل برگردانید.
  2. File Manager (مدیریت فایل هاست): این روش برای اکثر کاربران راحت‌تر است. شما وارد پنل مدیریت هاست خود (مثل cPanel یا DirectAdmin) می‌شوید و روی گزینه File Manager کلیک می‌کنید. محیطی شبیه به ویندوز اکسپلورر جلوی شما باز می‌شود که می‌توانید فایل‌ها را ببینید، ویرایش کنید یا حذف نمایید. در این آموزش، ما فرض را بر استفاده از File Manager می‌گذاریم چون در دسترس‌تر است، اما اصول کار در FTP دقیقاً مشابه است.

دسترسی به CPanel

بسیاری از روش‌های مدرن افزایش حافظه، به خصوص در هاست‌های اشتراکی امروزی، از طریق تنظیمات داخلی cPanel انجام می‌شود و نیازی به کدنویسی ندارد. پس مطمئن شوید که نام کاربری و رمز عبور ورود به cPanel خود را دارید. اگر ندارید، ایمیلی که هنگام خرید هاست دریافت کرده‌اید را چک کنید یا با پشتیبانی هاستینگ خود تماس بگیرید. دسترسی به سی‌پنل کلید طلایی ما برای ورود به بخش‌های پیشرفته‌ای مثل “Select PHP Version” است که در ادامه مفصل توضیح خواهیم داد.

آموزش رفع خطای میزان حافظه در وردپرس و افزایش رم

حالا که آماده‌ایم، بیایید آستین‌ها را بالا بزنیم. ما سه روش اصلی را از آسان‌ترین و استانداردترین روش تا روش‌های خاص سرور بررسی می‌کنیم. توصیه می‌کنم روش‌ها را به ترتیب امتحان کنید.

روش اول: ویرایش فایل wp-config.php

این اولین و استانداردترین قدم برای افزایش PHP Memory Limit در خودِ وردپرس است. با این کار، ما به وردپرس می‌گوییم: «هی! لطفاً خجالت نکش و تا جایی که سرور اجازه می‌دهد، از رم استفاده کن.»

  1. ورود به فایل منیجر: وارد cPanel شوید و روی File Manager کلیک کنید.
  2. پیدا کردن فایل: به پوشه public_html (یا ریشه‌ای که وردپرس در آن نصب است) بروید. فایل wp-config.php را پیدا کنید. این فایل یکی از مهم‌ترین فایل‌های وردپرس است که اطلاعات دیتابیس را در خود دارد.
  3. ویرایش: روی فایل wp-config.php کلیک راست کرده و گزینه Edit را انتخاب کنید.
  4. افزودن کد: در صفحه ویرایشگر متنی که باز می‌شود، به دنبال خطی بگردید که نوشته است: /* That’s all, stop editing! Happy publishing. */ (یا به فارسی: “همین، ویرایش را متوقف کنید! خوش بگذرد.”)

    دقیقاً قبل از این خط، کد زیر را کپی و پیست کنید:

define( 'WP_MEMORY_LIMIT', '256M' );

 

  1. این کد سقف حافظه وردپرس را به ۲۵۶ مگابایت افزایش می‌دهد. اگر می‌خواهید دست و دلبازتر باشید (و سرورتان اجازه می‌دهد)، می‌توانید 512M را هم امتحان کنید، اما معمولاً ۲۵۶ مگابایت برای اکثر سایت‌ها کافی است.
  2. ذخیره: دکمه Save Changes را بزنید و سایت را چک کنید. اگر مشکل حل شد، تبریک می‌گویم! اگر نه، به سراغ روش دوم بروید.

نکته حرفه‌ای: شما می‌توانید یک خط کد دیگر هم برای بخش مدیریت اضافه کنید تا از کندی پیشخوان جلوگیری کنید:

define( ‘WP_MAX_MEMORY_LIMIT’, ‘256M’ );

روش دوم: تغییر تنظیمات PHP در CPanel

این بخش دقیقاً همان‌جایی است که بسیاری از آموزش‌های قدیمی شما را گمراه می‌کنند. در گذشته، ما فایل php.ini را دستی می‌ساختیم. اما امروزه اکثر هاستینگ‌های حرفه‌ای از سیستم عامل CloudLinux استفاده می‌کنند. در این سیستم‌ها، فایل‌های محلی مثل php.ini اغلب نادیده گرفته می‌شوند و شما باید از ابزار گرافیکی خود سی‌پنل استفاده کنید.

اگر هاست شما از CloudLinux استفاده می‌کند (که اگر هاست وردپرس خریده باشید، احتمالاً همینطور است)، این موثرترین و صحیح‌ترین روش است.

هاست‌های CloudLinux و Select PHP Version

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

برای انجام این کار مراحل زیر را طی کنید:

  1. پیدا کردن ابزار: در صفحه اصلی cPanel، به بخش Software (نرم‌افزار) بروید و روی گزینه‌ای به نام Select PHP Version کلیک کنید. (ممکن است نام‌های دیگری مثل PHP Selector یا MultiPHP Manager هم ببینید، اما Select PHP Version گزینه مورد نظر ماست.
  2. تنظیمات (Options): وقتی وارد شدید، در تب Extensions هستید که لیست ماژول‌های PHP را نشان می‌دهد. به این تب کاری نداریم. در بالای صفحه، به دنبال تبی با عنوان Options بگردید و روی آن کلیک کنید.
  3. تغییر Memory Limit: در تب Options، لیستی از تنظیمات اصلی PHP را می‌بینید. به دنبال گزینه memory_limit بگردید. روبروی این گزینه، یک عدد نوشته شده (مثلاً 128M). روی آن کلیک کنید. یک منوی آبشاری باز می‌شود. مقدار آن را به 256M یا 512M تغییر دهید.
  4. ذخیره خودکار: در این پنل‌ها معمولاً نیازی به دکمه ذخیره نیست. به محض انتخاب گزینه جدید، سیستم پیامی مبنی بر موفقیت‌آمیز بودن تغییر (Success) نمایش می‌دهد و تنظیمات به صورت آنی اعمال می‌شود.

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

روش سوم: استفاده از فایل php.ini (در صورت امکان)

اگر روش اول و دوم کارساز نبود، یا هاست شما دسترسی Select PHP Version را نداشت، باید دست به دامان روش کلاسیک شویم. این روش بیشتر در سرورهای مجازی (VPS) یا هاست‌های اشتراکی قدیمی‌تر کاربرد دارد.

  1. ساخت یا ویرایش فایل: به File Manager و پوشه public_html بروید. چک کنید آیا فایلی به نام php.ini وجود دارد؟
    • اگر هست: آن را ویرایش کنید.
    • اگر نیست: روی دکمه + File کلیک کنید و یک فایل جدید با نام دقیق php.ini بسازید.
  2. وارد کردن کد: فایل را باز کنید و کد زیر را در آن قرار دهید:
    memory_limit = 256M
    
  3. ذخیره و تست: فایل را ذخیره کنید. سایت را رفرش کنید.

نکته مهم درباره فایل .htaccess: گاهی اوقات سرور اجازه خواندن php.ini را نمی‌دهد. در این شرایط، می‌توانید شانس خود را با فایل .htaccess امتحان کنید. این فایل در همان public_html است (اگر مخفی است، از تنظیمات فایل منیجر تیک Show Hidden Files را بزنید). کد زیر را به انتهای آن اضافه کنید:

php_value memory_limit 256M

زیرساخت قدرتمند؛ راهکاری برای طراحان و مدیران سایت‌ها

بیایید روراست باشیم؛ تغییر دستی کدها و سروکله زدن با فایل‌های سیستمی برای هر پروژه، وقت و انرژی زیادی از ما می‌گیرد. اگر شما یک توسعه‌دهنده، طراح سایت یا آژانس دیجیتال هستید که مدیریت چندین سایت وردپرسی را بر عهده دارید، برخورد مداوم با خطای Memory Limit در هاست‌های اشتراکی ضعیف می‌تواند کابوس شبانه‌تان باشد.

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

سرویس نمایندگی هاست وردپرس لاراتاندر دقیقاً با درک همین چالش‌ها طراحی شده است. لاراتاندر با ارائه منابع پردازشی، حافظه بالا و استفاده از سیستم‌عامل‌ بهینه‌ای مثل CloudLinux که در بالا توضیح دادیم، به شما اجازه می‌دهد تا مدیریت منابع رم و PHP را برای تمام مشتریان خود به سادگی و بدون درگیر شدن با خطاهای کلافه‌کننده انجام دهید. اگر می‌خواهید به جای دیباگ کردن خطاهای سرور، روی توسعه کسب‌وکار خود و مشتریانتان تمرکز کنید، پیشنهاد می‌کنم حتماً پلن‌های نمایندگی لاراتاندر را بررسی کنید؛ جایی که قدرت سخت‌افزاری با بهینه‌سازی نرم‌افزاری ادغام شده است.

کلام پایانی

خطای Memory Limit Exceeded در وردپرس، پایان دنیا نیست؛ بلکه هشداری است که نشان می‌دهد سایت شما در حال رشد است یا نیاز به خانه‌تکانی دارد. ما در این آموزش یاد گرفتیم که چگونه با ویرایش فایل wp-config.php درخواست افزایش رم بدهیم و مهم‌تر از آن، یاد گرفتیم که در هاست‌های مدرن با سیستم عامل CloudLinux، باید از ابزار Select PHP Version در سی‌پنل استفاده کنیم تا تغییرات واقعاً اعمال شوند.

source

توسط elmikhabari.ir