وردپرس هم مانند بسیاری از پلتفرمهای متن باز، معایب و مزایای خودش را دارد. این سیستم یکی از محبوبترین CMS های جهان است که کاربران بسیاری هم دارد. بیشتر وبسایتهای موجود با این سیستم مدیریت ساخته شدهاند. یکی از خطاهایی که معمولا کاربران وردپرس با آن روبهرو میشوند؛ خطای کمبود حافظه PHP است. در این مطلب قصد داریم بیشتر به جزئیات این ارور بپردازیم. همچنین افزایش حافظه PHP وردپرس را بررسی کنیم. در ادامه همراه ما باشید.
هر چه زمان بیشتری از تاسیس وبسایت شما بگذرد، پلاگینها، قالبها و محتوای سایت بیشتر میشود. این حجم زیاد اطلاعات نیاز به یک فضای ذخیرهسازی بزرگ بدون محدودیت، دارد.
گاهی اوقات این فضا در اختیار شما قرار ندارد و یا فراموش میکنید که این محدودیت را افزایش دهید. خطای کمبود حافظه PHP درست همینجا رخ میدهد. در ادامه راههای افزایش حافظه PHP وردپرس را بررسی میکنیم. سعی ما بر این است که در این مقاله به تمامی روشها اشاره کنیم.
خطای WordPress Memory Exhausted چیست؟
قبل از هرچیز بیایید این خطا را بهتر بشناسیم. خطای WordPress Memory Exhausted چیست؟ چه زمانی رخ میدهد و علت آن چیست؟ اجازه دهید تک تک به این سوالات پاسخ دهیم.
همانطور که میدانید، وردپرس بر اساس زبان برنامه نویسی قدرتمند و سمت سرور PHP توسعه داده شده است. علاوه بر این، تمامی وبسایتها برای راهاندازی نیاز به یک هاست وردپرس دارند. وب سرورها دقیقا شبیه به کامپیوترها برای اینکه بتوانند چندین دستور را همزمان اجرا کنند به یک حافظه نیاز دارند. به همین دلیل Administrator ها به تمامی برنامهها، یک حافظه اختصاص میدهند که PHP هم جزء این موارد است. پس در وردپرس ما یک حافظه 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
از طرفی، زمانی که وردپرس با خطای کمبود حافظه مواجه میشود خودش به دنبال راه چاره میگردد. به طور پیش فرض وردپرس با مشاهده این خطا سعی میکند مقدار حافظه را کمی افزایش دهد تا عملیات مورد نظر به پایان برسد. این مقدار عموما 64 مگابایت است که البته مقدار چشمگیری هم نیست.
آموزش بررسی محدودیت حافظه PHP
هنوز زود است که به سراغ راه حلهای افزایش محدودیت حافظه وردپرس برویم. قبل از آن باید به یک مورد دیگر رسیدگی کنیم. چطور میتوانیم محدودیت حافظه PHP را بررسی کنیم؟ زمانی که شما با این ارور مواجه میشوید کاملا واضح است که با محدودیت حافظه سر و کار دارید. اما چطور میتوانید فضای موجود را بررسی کنید؟ دو راه کلی برای بررسی محدودیت حافظه PHP وجود دارد. راه اول استفاده از ابزار Site Health Tools است. راه دوم هم اضافه کردن یک فایل PHP به سرور سایت است.
استفاده از ابزار Site Health Tools
این روش مستلزم این است که نسخه وردپرس 5.2 به بعد را استفاده کنید. توسعه دهندگان وردپرس از نسخه 5.2 به بعد ابزار Site Health tools را در آن قرار دادهاند. این ابزار درونی قابلیتهای بسیاری را در اختیار کاربران قرار میدهد. یکی از این قابلیتها بررسی مقدار حافظه PHP در وردپرس است.
برای دسترسی به این ابزار وارد داشبورد وردپرس سایت خود شوید. از قسمت نوار ابزار بر روی Settings کلیک کنید و به دنبال Site Health Tools بگردید. بعد از رفتن به صفحه این ابزار در پایین صفحه در بخش PHP memory limit میتوانید مقدار حافظه تخصیص داده شده برای PHP را مشاهده کنید.
اضافه کردن فایل PHP به سرور وبسایت
در این روش اولین کاری که باید انجام دهید ایجاد یک فایل .php در سرور وبسایت است. سپس باید قطعه کد <?php phpinfo(); ?> را در این فایل جاگذاری کنید.(فرقی نمیکند کجای فایل)
کار بعدی این است که صفحه را در مرورگرتان باز کنید و به دنبال memory_limit بگردید. مقداری که در اینجا مشاهده میکنید مقدار حافظهای است که برای PHP وردپرس در نظر گرفته شده است.
با استفاده از این دو روش میتوانید به راحتی از مقدار حافظهای که برای PHP در نظر گرفته شده است خبردار شوید.
افزایش محدودیت حافظه PHP در وردپرس
برخلاف بسیاری از خطاهای وردپرس، رفع ارور محدودیت حافظه به سادگی انجام میشود. به این خاطر که شما میدانید دقیقا چه اتفاقی افتاده است و قرار است به سراغ چه چیزی بروید. برای مثال ارور HTTP در وردپرس یکی از ارورهای مرموز و مبهم است. دلیل این ارور به طور قطعی مشخص نیست و برای رفع آن باید تمامی راهها را طی کنید تا به دلیل آن برسید. اما خطای محدودیت حافطه PHP در وردپرس صاف و پوست کنده است!
وقت آن است بدون معطلی به سراغ روشهای افزایش حافظه PHP وردپرس برویم:
1. افزایش محدودیت حافظه PHP از طریق wp-config.php
روش اول برای افزایش محدودیت حافظه PHP در وردپرس از طریق فایل wp-config.php است. این فایل حاوی دستوراتی است که در وبسایت شما اجرا میشوند. به صورت پیش فرض در این فایل 32 مگابایت فضا به حافظه PHP اختصاص داده شده است. بدون شک این فضا محدودیت دارد و کافی نیست. برای افزایش این مقدار حافظه، ابتدا باید به این فایل دسترسی پیدا کنید. فایل wp-config را هم میتوانید از پنل هاست پیدا کنید و یا میتوانید از طریق FTP به وبسایت خود متصل شوید و آن را ویرایش کنید.
فرقی نمیکند از کدام روش استفاده کنید. مهم این است که به این فایل دسترسی داشته باشید و بتوانید آن را ویرایش کنید و دستوراتی را به آن اضافه کنید.
فرض بر این است که میخواهید از طریق cPanel به هاست خود دسترسی داشته باشید. وارد File Manager شوید. سپس از آنجا در Root وبسایت خود به دنبال wp-config.php بگردید. این فایل را در ادیتور باز کنید.
در این مرحله باید قطعه کد زیر را درست بعد از عبارت That’s all, stop editing! Happy blogging. در این فایل جاگذاری کنید:
define( 'WP_MEMORY_LIMIT', '256M' );
این قطعه کد باعث میشود که محدودیت حافظه PHP به اندازه 256 مگابایت افزایش پیدا کند. (البته که میتوانید به جای 256 مقدار مورد نیاز خودتان را وارد کنید)
فراموش نکنید که بعد از وارد کردن این خط کد تغییرات اعمال شده را ذخیره کنید. البته پیشنهاد ما این است که ابتدا فایل wp-config را دانلود کنید و بعد از اعمال تغییرات مجدد آن را در هاست خود آپلود کنید.
این روش باعث میشود که از خطای محدودیت حافظه PHP آزاد شوید و با خیال راحت به کارهای سایت خود رسیدگی کنید.
2. افزایش محدودیت حافظه PHP از طریق php.ini
یکی دیگر از روشها برای افزایش محدودیت حافظه وردپرس، استفاده از فایل php.ini است. برای دسترسی به این فایل هم دو روش کلی وجود دارد. در اینجا به هر دوی آنها اشاره میکنیم.
اول) استفاده از پنل هاست: در این روش شما باید به پنل هاست خود لاگین کنید و وارد قسمت File Manager شوید. در اینجا به دنبال پوشه wp-admin بگردید. این پوشه را باز کنید و در آن فایل php.ini را جستجو کنید. اگر این فایل در پوشه مورد نظر موجود بود آن را بر روی کامپیوتر خود به صورت محلی دانلود کنید. فایل php.ini را باز کنید. در این فایل به دنبال memory_limit بگردید. سپس به ازای عددی که در روبروی آن قرار گرفته است مقدار مورد نیاز خود را وارد کنید.
اما اگر فایل php.ini در پوشه wp-admin موجود نبود باید خودتان یک فایل جدید ایجاد کنید. در کامپیوتر خود یک فایل متنی باز کنید. کافی است برای از بین بردن محدودیت حافظه PHP قطعه کد زیر را به این فایل جدید اضافه کنید:
memory_limit 512M
فراموش نکنید که به ازای مقدار 512 مگابایت میتوانید حافظه مورد نیاز خود را وارد کنید.
حال این فایل را با نام php.ini ذخیره کنید و آن را در پوشه wp-admin هاست خود آپلود کنید. این تمام کاری است که باید انجام دهید.
دوم) ارتباط با هاست از طریق SSH: به طوری که در این حالت به جای استفاده از پنل هاست از طریق SSH به وبسایت خود متصل میشوید. فایل php.ini در مسیر /usr/local/lib/php.ini قرار دارد.
برای باز کردن این فایل کافی است کد vi /usr/local/lib/php.ini را تایپ کنید. بعد از اجرای این قطعه کد فایل php.ini برایتان باز میشود که میتوانید آن را ویرایش کنید.
حال باید در این فایل به دنبال memory_limit بگردید. ابتدا : بزنید تا وارد حالت command شوید. بعد از وارد کردن دستور /memory_limit به قسمتی که مقدار آن وارد شده است هدایت میشوید. در جلوی آن مقدار در نظر گرفته شده برای حافظه را میبینید.
حال کافی است با زدن کلید insert مقدار مورد نیاز خود را برای memory_limit تعریف کنید. بعد از وارد کردن مقدار عددی کلید Esc را بزنید تا از حالت insert خارج شوید. بار دیگر : را بزنید تا وارد حالت Command شوید. سپس X را تایپ کنید و بعد Enter را بزنید.
با این کار تمامی تغییرات اعمال شده ذخیره میشوند. در آخر با وارد کردن دستور service httpd restart یکبار سیستم را ریستارت کنید تا تنظیمات اعمال شوند.
3. افزایش محدودیت حافظه PHP از طریق htaccess.
علاوه بر روشهایی که تا به اینجا به آنها اشاره کردیم، از طریق htaccess. هم میتوانید نسبت به افزایش محدودیت حافظه PHP اقدام کنید. همانطور که واضح است در این روش باید تغییراتی در فایل htaccess. ایجاد کنید.
اگر وارد هاست خود شوید این فایل را در Root هاست خود مشاهده میکنید. در اینجا هم فرقی نمیکند از چه روشی به هاست خود دسترسی داشته باشید. چه از طریق cPanel یا چه از طریق FTP، مهم دسترسی به این فایل است.
این نکته را به یاد داشته باشید که فایل htaccess. از نوع فایلهای dotfile است. به این معنی که به طور پیش فرض توسط برخی از هاستها نمایش داده نمیشود.
اگر قصد دارید از طریق FTP به وبسایت خود متصل شوید، کافی است که در FileZila تنظیمات نمایش آن را اعمال کنید. برای این کار بر روی تب Server کلیک کنید. سپس گزینه Force Showing Hidden Files را انتخاب کنید تا این مدل از فایلها نمایش داده شوند.
بهترین کار این است که این فایل را بر روی کامپیوتر خود به صورت محلی دانلود کنید. سپس آن را ویرایش کنید و دوباره بر روی هاست خود آپلود کنید. پس اولین قدم دانلود فایل از هاست است.
فایل htaccess. را در کامپیوتر خود باز کنید. حال به دنبال php_value memory_limit 512M بگردید. اگر هم که این جمله را پیدا نکردید کافی است که آن را به فایل htaccess. اضافه کنید.
همانطور که مشخص است مقدار عددی – در اینجا 512 مگابایت، مقدار حافظهای است که به PHP اختصاص داده شده است. میتوانید به ازای این مقدار، مقدار مورد نیاز خود را وارد کنید. بعد از اعمال این تغییرات فایل htaccess. را ذخیره کنید.
فایل جدید را در هاست خود آپلود کنید. بعد از آپلود یکبار پوشه Root را refresh کنید. سپس سایت خود را Refresh کنید تا ببینید این خطا بر طرف شده است یا خیر.
4. افزایش محدودیت حافظه PHP از طریق cPanel
یکی دیگر از روشها برای افزایش محدودیت حافظه PHP، افزایش آن از طریق cPanel است. در این روش دو متد کلی وجود دارد که میتوانید مقدار این حافظه را افزایش دهید.
روش اول: در روش اول باید در پنل هاست خود – cPanel به بخش Software بروید. در اینجا گزینه Select PHP Version را انتخاب کنید. گزینه بعدی که باید بر روی آن کلیک کنید Switch to PHP Options است. در نهایت بر روی memory_limit کلیک کنید تا مقدار آن را تغییر دهید. همین!
روش دوم: قسمت بعدی که از آن میتوانید مقدار حافظه PHP را تغییر دهید باز در بخش Software در پنل هاستتان قرار دارد. فقط اینبار باید از این بخش MultiPHP INI Editor را انتخاب کنید. در پنجره باز شده صفحه را به پایین بکشید تا به memory_limit برسید. حال میتوانید به راحتی مقدار آن را در کادر تعبیه شده تغییر دهید.
5. افزایش محدودیت حافظه PHP در پلسک – Plesk
ابتدا اجازه دهید کمی پلسک را معرفی کنیم. پلسک چیست؟ پلسک یک نوع کنترل پنل هاست است. این کنترل پنل هم برای هاستهای لینوکسی و هم برای هاستهای ویندوزی کاملا مناسب است.
وبمسترها از طریق رابط گرافیکی پلسک، به راحتی میتوانند تمامی فعالیتهای مربوط به سایت خود را کنترل کنند. از جمله امکاناتی که در اختیار کاربران قرار میگیرد میتوان به ایجاد وب سایتهای جدید، حسابهای نمایندگی فروش، حسابهای ایمیل و ورودی های DNS اشاره کرد.
برای اینکه بتوانید از طریق پلسک نسبت به افزایش محدودیت حافظه PHP اقدام کنید ابتدا باید وارد آن شوید. مانند cPanel، زمانی که شما هاست خود را خریداری میکنید یک رمز عبور و شناسه کاربری برای ورود به کنترل پنل هاست در اختیارتان قرار میگیرد. با استفاده از صفحه لاگین و وارد کردن مقادیر خواسته شده به هاست وبسایت خود وارد شوید.
بعد از وارد شدن به پلسک، برای تغییر مقدار حافظه باید به مسیر Plesk > Domains > example.com > PHP Settings > memory_limit بروید. سپس مقدار Memory_limit را تغییر دهید. همانطور که مشخص است این روش زمانی مورد استفاده قرار میگیرد که قصد دارید مقدار حافظه را فقط برای یک دامین تغییر دهید.
اما اگر قصد افزایش حافظه PHP وردپرس را داشته باشید، باید به مسیر دیگری بروید. برای اینکار به مسیر Plesk > Tools & Settings > PHP Settings > PHP handler > php.ini بروید. حال در فایل php.ini به دنبال عبارت memory_limit بگردید. روبروی آن مقدار جدیدی که مد نظرتان است را وارد کنید. فراموش نکنید که این تنظیمات فقط برای دامینهایی که مقدار حافظه آنها بر روی مقدار پیش فرض تنظیم شده بود اعمال میشود.
6. افزایش محدودیت حافظه PHP در Godaddy
یکی دیگر از سرویسهای هاستینگ، سرویس Godaddy است. در این سرویس به طور پیش فرض مقدار حافظه در نظر گرفته شده برای php، 64 مگابایت است. اگر قصد دارید این مقدار را تغییر دهید طبق مراحل زیر پیش بروید:
- ابتدا به صفحه لاگین Godaddy بروید و در آنجا با وارد کردن مقدارهای خواسته شده به پنل هاست خود وارد شوید.
- حال File Manager را انتخاب کنید.
- در پوشه Root وبسایت خود یک فایل php5.ini جدید ایجاد کنید. (اگر این فایل در مسیر Root قرار دارد کافی است که آن را ادیت کنید و خط memory_limit = 256M را به آن اضافه کنید)
- خط memory_limit = 256M را به فایل php5.ini اضافه کنید.
- فایل مورد نظر را ذخیره کنید و آن را ببندید.
- اگر فایل php را باز کنید، تغییرات شما اعمال نشده است.
- از این مرحله به بعد کار اصلی شما شروع میشود. در پنل هاست خود از بخش stats & Monitors بر روی System Processes کلیک کنید.
- در اینجا گزینهای با عنوان End All مشاهده میکنید. بر روی آن کلیک کنید.
- حال فایل php info را در مرورگر خود باز کنید تا تغییرات اعمال شده بر روی مقدار حافظه را مشاهده کنید.
7. افزایش محدودیت حافظه PHP در WHM
WHM مخفف عبارت Web Host Manager است. با استفاده از این برنامه قدرتمند میتوانید به Back-end کنترل پنل هاست خود یعنی cPanel دسترسی داشته باشید. برای تغییر و افزایش محدودیت حافظه PHP در این روش ابتدا باید وارد داشبورد WHM شوید. بعد از وارد شدن از منوی سمت چپ گزینه PHP Configuration Editor را انتخاب کنید.
در پنجره جدید باز شده صفحه را پایین بروید تا به عبارت memory_limit برسید. در اینجا کافی است تا مقدار در نظر گرفته شده برای memory_limit را با توجه به نیاز خود تغییر دهید. در نهایت به پایین صفحه بیایید و تغییرات اعمال شده را ذخیره کنید.
بعد از اعمال تغییرات، به طور خودکار فایل php.ini باز میشود. میتوانید ببینید که مقدار حافظه تغییر کرده است.
8. افزایش محدودیت حافظه PHP در XAMPP
یکی از سادهترین روشها برای افزایش محدودیت حافظه در XAMPP انجام میشود. همانطور که میدانید زمپ یک نرمافزار شبیهساز محیط هاست وبسایت است. این برنامه بر روی کامپیوتر شما نصب میشود و شما میتوانید تمامی تغییراتی که قصد دارید بر روی هاست خود انجام دهید را به صورت محلی کنترل کنید.
برای تغییر مقدار حافظه PHP در زمپ ابتدا به مسیر C:\xampp\apache\bin\php.ini بروید. فایل php.ini را باز کنید و مقدار memory_limit را در آن پیدا کنید. تنها کاری که باید انجام دهید این است که مقدار تایپ شده در برابر این عبارت را تغییر دهید و تنظیمات جدید را ذخیره کنید.
آخرین راهکار: با سرویسدهنده هاست خود تماس بگیرید
اگر به هر دلیلی با استفاده از روشهایی که به آن اشاره شد نتوانستید مقدار حافظه PHP را افزایش دهید، وقت آن است با سرویسدهنده هاست خود تماس بگیرید. در برخی از سرویسدهندههای هاست و همچنین در هاستهای اشتراکی امکان دسترسی به فایل php.ini وجود ندارد.
به همین خاطر خود کاربران نمیتوانند مقدار حافظه PHP را تغییر دهند. بنابراین تنها راهکار تماس با سرویسدهنده هاست است. حتی ممکن است برخی از هاستها امکان افزایش این مقدار حافظه را در خود نداشته باشند.
در این صورت باید به کلی هاست دیگری را انتخاب کنید که علاوه بر داشتن حافظه PHP بیشتر امکان این را داشته باشد تا مقدار حافظه توسط خود کاربران هم افزایش پیدا کند.
پس با پشتیبانی تماس بگیرید. این افراد برای شما توضیح میدهند که چطور میتوانید به حافظه بیشتر دسترسی داشته باشید. یا اینکه خودشان این مقدار را تغییر میدهند.
محدودیت حافظه وردپرس افزایش پیدا نمیکند
در این مقاله سعی شد تا به تمامی روشها برای افزایش حافظه PHP وردپرس اشاره شود. اما همانطور که بارها به آن اشاره کردیم ممکن است که این روشها جواب ندهند. حتی اگر تمامی این روشها را امتحان کنید و جواب نگیرید باز هم جای تعجب نیست.
همانطور که کمی بالاتر به آن اشاره کردیم گاهی اوقات در صورت جواب ندادن این روشها مشکل از هاستی است که خریداری کردهاید. برخی از هاستها امکان افزایش مقدار حافظه را ندارند. به همین خاطر کاربران مجبور میشوند به طور کلی هاست دیگری را خریداری کنند.
اگر این مطلب برای شما مفید بود حتما نظرات خود را با ما در میان بگذارید. همچنین اگر جای نکتهای در این بین خالی است آن را با ما به اشتراک بگذارید.