وردپرس به عنوان محبوبترین سیستم مدیریت محتوای (CMS) در جهان، به کاربران امکان ساخت وبسایتهای متنوع و پویا را میدهد. با این حال، وبسایتهای وردپرس، به خصوص آنهایی که با حجم زیادی از محتوا، تصاویر یا افزونهها سروکار دارند، ممکن است با خطاهایی مبنی بر "خارج شدن از حافظه" مواجه شوند. این خطاها زمانی رخ میدهند که وردپرس برای اجرای وظایف خود حافظه کافی در اختیار نداشته باشد. در این مقاله، به بررسی راههای مختلف برای افزایش محدودیت حافظه PHP در وردپرس میپردازیم. این کار به شما کمک میکند تا از بروز خطاهای حافظه جلوگیری کرده و عملکرد وبسایت خود را به طور قابل توجهی بهبود ببخشید.
مزایا و معایب سیستم مدیریت محتوای وردپرس چیست؟
خطای Memory Exhausted در وردپرس چیست و چه راهحلهایی دارد؟
خطای Memory Exhausted در وردپرس زمانی رخ میدهد که حافظه PHP اختصاص یافته به وبسایت شما برای اجرا و پردازش وظایف مختلف، به طور کامل اشباع میشود. این خطا میتواند منجر به بروز مشکلاتی مانند:
· عدم نمایش کامل صفحات وب: بخشی از محتوا یا تصاویر بارگذاری نمیشوند.
· کند شدن یا عدم پاسخگویی داشبورد وردپرس: مدیریت و ویرایش وبسایت با مشکل مواجه میگردد.
· عدم امکان نصب افزونه یا قالب جدید: به دلیل کمبود حافظه، امکان نصب اجزای جدید وجود ندارد.
· نمایش پیغام خطا: پیغام "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2348617 bytes) in /home4/xxx/public_html/wp-includes/plugin.php on line xxx" یا مشابه آن ظاهر میشود.
دلایل اصلی ایجاد این خطا عبارتاند از:
· محدودیت حافظه PHP پایین: هاستینگ شما ممکن است مقدار حافظه کمی را برای وردپرس در نظر گرفته باشد.
· افزونههای سنگین: برخی از افزونهها با منابع زیادی کار میکنند و نیازمند حافظه بیشتری هستند.
· قالبهای پیچیده: قالبهای وردپرس با ویژگیهای زیاد و کدهای حجیم میتوانند حافظه بیشتری مصرف کنند.
· ترافیک بالا: وبسایتهای پربازدید با حجم بالای ترافیک همزمان، نیازمند حافظه بیشتری برای پردازش درخواستها هستند.
· اسکریپتهای سفارشی: اسکریپتهای سفارشی ناکارآمد نیز میتوانند باعث مصرف بیش از حد حافظه شوند.
پیام خطای "Allowed memory size of bytes exhausted" در وردپرس یعنی چه؟
پیغام خطای "Allowed memory size of bytes exhausted "در وردپرس، کابوسی برای مدیران وبسایتهای وردپرسی میباشد. این خطا نشان میدهد که وبسایت شما از محدودیت حافظه Memory Limit اختصاص داده شده به آن عبور کرده است. به زبان سادهتر، وردپرس برای انجام وظایف خود به حافظه کافی دسترسی ندارد و در نتیجه با مشکل مواجه میشود.
وردپرس چقدر به حافظه نیاز دارد؟
میزان حافظه مورد نیاز وردپرس به عوامل مختلفی بستگی دارد، از جمله:
· اندازه و پیچیدگی وبسایت: وبسایتهای بزرگتر با محتوای بیشتر و امکانات پیچیدهتر به حافظه بیشتری نیاز دارند.
· تعداد و نوع افزونهها: برخی از افزونهها به دلیل ارائه امکانات و قابلیتهای بیشتر، حافظه بیشتری مصرف میکنند.
· قالب مورد استفاده: قالبهای سنگین با گرافیکهای پیچیده و اسکریپتهای حجیم، حافظه بیشتری اشغال مینمایند.
· میزان ترافیک وبسایت: وبسایتهای پربازدید با ترافیک بالا به حافظه بیشتری برای پردازش درخواستها نیاز دارند.
به طور کلی حافظه مورد نیاز در وردپرس در حالتهای مختلف به صورت زیر است.
· وردپرس خام: بدون افزونه و قالب، به حداقل 32 مگابایت حافظه نیاز دارد.
· حداقل توصیه شده: برای اکثر وبسایتها، 128 مگابایت حافظه کافی است.
· عملکرد بهینه: بسیاری از هاستینگها 256 مگابایت یا بیشتر را برای وردپرس پیشنهاد میکنند.
· وبسایتهای کوچک: با ترافیک پایین و امکانات پایه، 256 مگابایت حافظه میتواند کافی باشد.
لازم به ذکر است که محدودیت حافظه 128 مگابایت برای اکثر سایتها تا زمانی که افزونههای سنگینی نصب نکنند، باید کافی باشد. با رشد وب سایت و افزایش افزونهها، قالبها و ترافیک، ممکن است به حافظه بیشتری نیاز داشته باشید.
محدودیت حافظه PHP در وردپرس چیست و چه مقدار حافظه برای وبسایت شما کافی است؟
محدودیت حافظه PHP در وردپرس، حداکثر مقداری از حافظه سرور است که PHP میتواند برای اجرای اسکریپتها و پردازش درخواستهای وبسایت شما استفاده کند. این مقدار به طور پیشفرض 32 مگابایت است؛ اما شما میتوانید با توجه به نیازهای وبسایت خود آن را افزایش دهید.
چرا محدودیت حافظه PHP مهم است؟
به دلایل زیر میتوانیم بگوییم که محدودیت حافظه در وردپرس بسیار مهم است.
· عملکرد وبسایت: اگر محدودیت حافظه PHP به اندازه کافی بالا نباشد، ممکن است با کند شدن سرعت بارگذاری صفحات، عدم پاسخگویی داشبورد وردپرس و یا حتی خطاهای مختلف مواجه شوید.
· افزونهها و قالبها: برخی از افزونهها و قالبهای وردپرس، به دلیل ارائه امکانات و قابلیتهای بیشتر، به حافظه بیشتری نیاز دارند.
· ترافیک وبسایت: وبسایتهای پربازدید با ترافیک بالا، به حافظه بیشتری برای پردازش درخواستها مورد نیاز است.
چه مقدار حافظه PHP برای وبسایت شما کافی است؟
مقدار حافظه مورد نیاز برای سایت شما به وضعیت سایتتان بستگی دارد به طوری که:
· سایتهای ساده: برای سایتهای ساده با صفحات کم و محتوای محدود، 32 مگابایت حافظه پیشفرض ممکن است کافی باشد.
· سایتهای متوسط: برای سایتهایی با افزونههای بیشتر، محتوای چندرسانهای و ترافیک متوسط، 128 مگابایت حافظه معمولا کافی میباشد.
· سایتهای پربازدید و پیچیده: برای وبسایتهای پربازدید با تعداد زیادی افزونه، قالبهای سنگین و ترافیک بالا، ممکن است به 256 مگابایت یا بیشتر حافظه نیاز داشته باشید.
راهحلهای صرفهجویی در مصرف حافظه وردپرس
همانطور که قبلا اشاره شد، خطای "Allowed memory size of bytes exhausted " در وردپرس به دلیل کمبود حافظه برای اجرای وظایف مختلف وبسایت رخ میدهد. این خطا میتواند منجر به مشکلات متعددی مانند کند شدن یا عدم نمایش کامل صفحات، عدم پاسخگویی داشبورد وردپرس و عدم امکان نصب افزونه یا قالب جدید شود. برای جلوگیری از بروز این خطا و صرفهجویی در حافظه وردپرس، میتوانید از راهحلهای زیر استفاده کنید.
1. افزایش محدودیت حافظه
اولین و سادهترین راهکار، افزایش محدودیت حافظه اختصاص داده شده به وردپرس است. برای این کار باید با شرکت هاستینگ خود تماس بگیرید و درخواست افزایش حافظه را بدهید. اکثر هاستینگها این امکان را به صورت رایگان یا با پرداخت هزینه اندکی ارائه میدهند.
2. غیرفعال کردن افزونههای غیرضروری
افزونههای وردپرس میتوانند به طور قابل توجهی بر مصرف حافظه وبسایت شما تاثیر بگذارند. بسیاری از افزونهها حتی زمانی که به طور فعال از آنها استفاده نمیکنید، در پسزمینه در حال اجرا هستند و حافظه زیادی مصرف میکنند. برای صرفهجویی در حافظه، افزونههایی را که به طور مرتب از آنها استفاده نمیکنید غیرفعال کنید. همچنین میتوانید از افزونههایی مانند P3 Plugin Performance Profiler استفاده کنید تا میزان مصرف حافظه هر افزونه را به طور جداگانه بررسی کرده و افزونههای پرمصرف را شناسایی و غیرفعال نمایید.
3. استفاده از قالبهای سبکتر
قالب وردپرس نیز میتواند نقش مهمی در مصرف حافظه داشته باشد. قالبهای سنگین با گرافیکهای پیچیده و اسکریپتهای حجیم، حافظه بیشتری اشغال مینمایند. به جای استفاده از این قالبها، از قالبهای سادهتر و سبکتر با کدهای بهینهتر استفاده کنید. همچنین قالبهای رایگان و پولی متعددی در دسترس هستند که میتوانید با توجه به نیاز و سلیقه خود آنها را انتخاب نمایید.
4. بهینهسازی تصاویر
تصاویر یکی از بزرگترین منابع مصرف حافظه در وبسایتها هستند. تصاویر با کیفیت بالا و حجم زیاد میتوانند فضای زیادی اشغال کرده و به سرعت حافظه شما را پر کنند. برای بهینهسازی تصاویر، میتوانید از ابزارهای فشردهسازی مانند TinyPNG یا WP Smush استفاده نمایید. همچنین میتوانید فرمت تصاویر را به WebP که فرمت جدیدتری و فشردهتر است، تغییر دهید.
5. استفاده از کش
افزونههای کش مانند WP Super Cache یا W3 Total Cache میتوانند به طور قابل توجهی سرعت بارگذاری صفحات وبسایت شما را افزایش دهند و در عین حال حافظه کمتری مصرف نمایند. این افزونهها با ذخیرهسازی موقت محتوای صفحات وب، از بارگذاری مجدد آنها در هر بار بازدید کاربر جلوگیری میکنند و در نتیجه مصرف حافظه را به طور چشمگیری کاهش میدهند.
6. بهینهسازی اسکریپتهای سفارشی
اگر از اسکریپتهای سفارشی در وبسایت خود استفاده میکنید، ممکن است نیاز به بررسی و بهینهسازی آنها برای کاهش مصرف حافظه داشته باشید. اسکریپتهای ناکارآمد و غیر بهینه میتوانند به طور قابل توجهی بر عملکرد وبسایت و مصرف حافظه تاثیر منفی بگذارند.
7. بهروزرسانی وردپرس، افزونهها و قالبها
همیشه وردپرس، افزونهها و قالبهای خود را به آخرین نسخه بهروزرسانی کنید. بهروزرسانیها معمولا شامل رفع اشکالات و بهبودهای عملکردی هستند که میتوانند به کاهش مصرف حافظه کمک نمایند.
8. استفاده از ابزارهای نظارتی
از ابزارهای نظارتی مانند Query Monitor یا Debug Bar استفاده نمایید تا منابع مصرف حافظه در وبسایت خود را به طور دقیق شناسایی کنید. این ابزارها به شما کمک میکنند تا مشخص کنید کدام بخشها از وبسایت شما بیشترین حافظه را مصرف مینمایند و راهحلهای مناسب برای بهینهسازی آنها را پیدا کنید. با انجام این اقدامات میتوانید مصرف حافظه را در وبسایت وردپرس خود کاهش دهید و از بروز خطای Memory Exhausted جلوگیری نمایید.
برای رفع محدودیت حافظه در وردپرس چند راهحل وجود دارد؟
روشهای مختلف برای افزایش محدودیت حافظه PHP در وردپرس را بررسی میکنیم تا وبسایت شما را از شر این مشکل آزار دهنده نجات دهیم.
· ویرایش فایل wp-config.php
· ویرایش فایل htaccess
· افزونههای افزایش حافظه
· تماس با شرکت هاستینگ
· ویرایش فایل PHP.ini
· استفاده از MultiPHP INI Editor
افزایش محدودیت حافظه PHP در وردپرس با ویرایش فایل wp-config.php
یکی از سادهترین روشها برای افزایش حافظه PHP، ویرایش فایل wp-config.php میباشد. مراحل انجام این کار به شرح زیر است.
1. به هاستینگ خود متصل شوید
به کنترل پنل هاستینگ خود وارد شوید.
از طریق File Manager یا FTP به دایرکتوری اصلی وردپرس خود معمولا public_html بروید.
2. فایل wp-config.php را پیدا کنید
در دایرکتوری public_html به دنبال فایل wp-config.php بگردید.
3. فایل wp-config.php را ویرایش کنید
فایل wp-config.php را با استفاده از یک ویرایشگر متن مانند Notepad++ یا Sublime Text باز کرده و خط زیر را به انتهای فایل wp-config.php اضافه نمایید.
define 'WP_MEMORY_LIMIT', '256M' ;
در این خط، مقدار 256M را با مقدار حافظه مورد نظر خود (به مگابایت) جایگزین کنید.
توجه: این خط را باید قبل از خط/*That’s all, stop editing! Happy publishing. */ قرار دهید.
4. تغییرات را ذخیره کنید
تغییرات را در فایل wp-config.php ذخیره نمایید.
5. به وردپرس خود مراجعه کنید
به وبسایت وردپرس خود مراجعه کنید. خطای memory exhausted باید ناپدید شده باشد و عملکرد وردپرس به طور قابل توجهی بهبود یابد.
نکات مهم:
· قبل از افزایش محدودیت حافظه PHP، از بهینهسازی وبسایت خود و غیرفعال کردن افزونههای غیرضروری اطمینان حاصل کنید.
· مقدار حافظه را بیش از حد نیاز خود افزایش ندهید، زیرا این امر میتواند باعث کند شدن سرعت بارگذاری صفحات شود.
· اگر با انجام این مراحل مشکل شما حل نشد، ممکن است نیاز به استفاده از روشهای دیگر مانند ویرایش فایل PHP.ini یا تماس با شرکت هاستینگ خود داشته باشید.
با انجام این مراحل ساده، میتوانید به راحتی محدودیت حافظه PHP را در وردپرس خود افزایش داده و از بروز خطاهای مربوط به کمبود حافظه و افت عملکرد وبسایت خود جلوگیری کنید.
افزایش حافظه PHP با ویرایش فایل PHP.ini
اگر با افزایش حافظه PHP از طریق فایل wp-config.php مشکل شما حل نشد، لازم است برای حل مشکل به سراغ تنظیمات سرور بروید. این روش زمانی کاربرد دارد که از هاست غیر اشتراکی استفاده میکنید و به فایل PHP.ini دسترسی دارید. مراحل افزایش حافظه PHP از طریق ویرایش فایل PHP.ini به صورت زیر است.
1. فایل PHP.ini را پیدا کنید: محل این فایل بسته به نوع هاست شما متفاوت است. به طور معمول، می توانید آن را در پوشه ریشه هاست خود پیدا نمایید.
2. فایل PHP.ini را ویرایش نمایید: با استفاده از یک ویرایشگر متن، فایل PHP.ini را باز کنید.
3. خط مربوط به محدودیت حافظه را پیدا کنید: به دنبال خطی با عنوان memory_limit باشید.
4. مقدار حافظه را افزایش دهید: مقدار حافظه اختصاص یافته به PHP را با ویرایش مقدار عددی بعد از memory_limit افزایش دهید. به عنوان مثال، برای تنظیم حافظه به 256 مگابایت، مقدار را به memory_limit = 256M تغییر دهید.
5. فایل را ذخیره کنید: تغییرات را ذخیره کرده و فایل PHP.ini را ببندید.
6. سرور را مجدد راه اندازی نمایید: برای اعمال تغییرات، سرور خود را مجدد راهاندازی کنید.
توجه: اگر از هاست اشتراکی استفاده می کنید، به دلیل محدودیتهای دسترسی، امکان ویرایش فایل PHP.ini وجود ندارد. در این صورت، باید از روشهای دیگر برای افزایش حافظه PHP مانند ویرایش فایل htaccess یا استفاده از افزونههای وردپرس استفاده نمایید.
افزایش حافظه PHP با ویرایش فایل htaccess
در صورتی که به فایل PHP.ini دسترسی ندارید، میتوانید برای افزایش حافظه PHP از فایل htaccess استفاده کنید. فراموش نکنید که فایل htaccess یک فایل مخفی است و برای مشاهده آن باید تنظیمات نمایش فایلهای مخفی در هاست خود را فعال نمایید. مراحل افزایش حافظه PHP از طریق ویرایش فایل htaccess عبارت است از:
1. به کنترل پنل هاست خود بروید و وارد بخش مدیریت فایلها معمولا File Manager شوید.
2. به پوشهای که در آن وردپرس نصب شده است معمولا public_html بروید.
3. اگر فایل htaccess را مشاهده نمیکنید، تنظیمات مربوط به نمایش فایلهای مخفی را فعال نمایید. برای این کار، در نوار ابزار مدیریت فایلها، به دنبال گزینهای برای نمایش فایلهای مخفی مانند Show Hidden Files بگردید و آن را فعال کنید.
4. روی فایل htaccess راست کلیک کرده و گزینه Edit را انتخاب کنید.
5. کد مربوط به افزایش حافظه را اضافه کنید: در انتهای فایل htaccess، کد زیر را اضافه نمایید:
php_value memory_limit 256M
توجه: در کد بالا، مقدار 256M را با مقدار حافظه مورد نظر خود جایگزین کنید.
تغییرات را ذخیره کرده و فایل htaccess را ببندید.
این روش فقط زمانی کار میکند که از سرور مجازی اختصاصی VPS یا هاست اختصاصی استفاده کنید. در هاست های اشتراکی، به دلیل محدودیتهای امنیتی، امکان ویرایش فایل htaccess برای افزایش حافظه PHP وجود ندارد. اگر از هاست اشتراکی استفاده میکنید و به PHP.ini دسترسی ندارید، میتوانید از روشهای دیگر برای افزایش حافظه PHP مانند استفاده از افزونههای وردپرس یا تماس با پشتیبانی هاست خود استفاده نمایید.
افزایش حافظه PHP با استفاده از MultiPHP INI Editor در کنترل پنل هاست
در صورتی که به فایلهای PHP.ini یا htaccess دسترسی ندارید، یا به سادگی میخواهید از روشی آسانتر برای افزایش حافظه PHP استفاده کنید، میتوانید از MultiPHP INI Editor در کنترل پنل هاست خود استفاده نمایید. این روش زمانی کاربرد دارد که شرکت هاستینگ شما این امکان را در اختیارتان قرار داده باشد. مراحل افزایش حافظه PHP با استفاده از MultiPHP INI Editor عبارت است از:
1. به آدرس ورود به کنترل پنل هاست خود که معمولا توسط هاستینگ به شما ارائه شده است مراجعه کنید.
2. در منوی کنترل پنل، به دنبال بخشی با عنوان MultiPHP INI Editor، PHP Configuration، یا تنظیمات PHP بگردید. نام دقیق این بخش ممکن است بسته به نوع کنترل پنل هاست شما متفاوت باشد.
3. در بخش MultiPHP INI Editor، نام دامنهای که میخواهید حافظه PHP آن را افزایش دهید انتخاب نمایید. در برخی از کنترل پنل ها، ممکن است لازم باشد ابتدا به زبانه Basic Mode یا مشابه آن سوئیچ کنید. در بخش تنظیمات پایه PHP Basic PHP INI settings، به دنبال خطی با عنوان memory_limit باشید. مقدار عددی بعد از این خط را به مقداری که مدنظر دارید مانند 256m، 512m، یا 1024m تغییر دهید.
4. پس از انجام تغییرات، دکمه ذخیره یا Apply را کلیک کنید.
لازم به ذکر است که این روش فقط در صورتی کار میکند که شرکت هاستینگ شما دسترسی به MultiPHP INI Editor را برای شما فعال کرده باشد. در برخی از هاست های اشتراکی، امکان افزایش حافظه PHP از طریق MultiPHP INI Editor وجود ندارد. اگر به MultiPHP INI Editor دسترسی ندارید، میتوانید از روشهای دیگر برای افزایش حافظه PHP مانند ویرایش فایل PHP.ini، htaccess یا استفاده از افزونههای وردپرس استفاده کنید.
نتیجهگیری
بهطورکلی میتوانیم بگوییم که مشکل کمبود حافظه PHP در وردپرس، خطاهای مختلفی را به همراه دارد. در این مقاله، راهحلهای مختلفی برای رفع این مشکل ارائه شد. دو روش ساده برای افزایش حافظه PHP، ویرایش فایلهای wp-config.php و htaccess است. در هاستهای مدیریت شده، میتوانید از MultiPHP INI Editor در کنترل پنل استفاده نمایید. اگر با وجود راهحلهای فوق، مشکل همچنان پابرجا بود، ارتقای پلن هاست میتواند راه حل نهایی باشد. به خاطر داشته باشید که قبل از هرگونه تغییر، از سایت خود بکآپ تهیه کنید و در صورت بروز مشکل، از راهنمای هاستینگ یا متخصصان وردپرس کمک بگیرید. انتخاب بهترین روش به نوع هاست، سطح دسترسی و نیازهای وبسایت شما بستگی دارد.
سوالات متداول
چه زمانی باید حافظه PHP را افزایش دهیم؟
شما باید زمانی که با خطاهایی مانند Internal Server Error یا "Fatal error: Allowed memory size of X bytes exhausted" در وردپرس مواجه میشوید، حافظه PHP را افزایش دهید. این خطاها نشان میدهد که PHP حافظه کافی برای اجرای وظایف خود را ندارد.
چه روشی برای افزایش حافظه PHP مناسبتر است؟
بهترین روش برای افزایش حافظه PHP به نوع هاست شما، سطح دسترسی شما به فایلهای سرور و نیازهای وبسایت شما بستگی دارد. ویرایش فایل wp-config.php سادهترین روش برای افزایش حافظه PHP است که در اکثر هاست ها قابل اجرا میباشد. در صورتی که به فایل PHP.ini دسترسی ندارید میتوانید از روش ویرایش فایل htaccess استفاده کنید. همچنین استفاده از MultiPHP INI Editor تنها در هاست های مدیریت شده که به MultiPHP INI Editor دسترسی دارید قابل استفاده است.
حداکثر چقدر میتوانیم حافظه PHP را افزایش دهیم؟
حداکثر حافظه قابل تنظیم برای PHP توسط هاست شما تعیین میشود. برای اطلاع از این مقدار، میتوانید با پشتیبانی هاست خود تماس بگیرید.
افزایش حافظه PHP چه خطراتی دارد؟
افزایش بیش از حد حافظه PHP میتواند منجر به مشکلاتی در عملکرد سرور شود. به همین دلیل، مهم است که فقط مقدار حافظه مورد نیاز خود را افزایش دهید.
اگر در افزایش حافظه PHP مشکل دارم چه کار کنیم؟
اگر در انجام مراحل افزایش حافظه PHP با مشکلی مواجه شدید، میتوانید از راهنمای هاستینگ خود یا از یک متخصص وردپرس کمک بگیرید.
افزونههای افزایش حافظه PHP چطور کار میکنند؟
افزونههای افزایش حافظه PHP میتوانند با جایگزینی روشهای manual افزایش حافظه مانند ویرایش فایل های wp-config.php یا htaccess، به شما در افزایش حافظه PHP کمک کنند. با این حال، به خاطر داشته باشید که این افزونهها همیشه کارآمد نیستند و ممکن است باعث تداخل با سایر افزونهها یا قالب شما شوند.
آیا افزایش حافظه PHP سرعت سایت را افزایش میدهد؟
افزایش حافظه PHP در صورتی که کمبود حافظه دلیل کندی سرعت سایت شما باشد میتواند به افزایش سرعت آن کمک کند. با این حال اگر مشکل کندی سرعت سایت شما به دلیل کمبود حافظه PHP نباشد، افزایش حافظه آن تاثیر زیادی در سرعت سایت شما نخواهد داشت.