SHET21

افزایش منابع هاست با ویرایش فایل php.ini در کنترل پنل CPanel

افزایش منابع هاست با ویرایش فایل php.ini در کنترل پنل CPanel

یه روز صبح میاید سراغ سایتتون، صفحه رو باز می‌کنید و… هیچی. یه صفحه‌ی سفیدِ خالی. نه ارور، نه توضیح، نه هیچی. یا بدتر، یه «Error 500» زُل زده بهتون. اون لحظه اولین چیزی که به ذهن آدم می‌رسه اینه که «خدایا سایت پرید؟»

خب بذارید خیالتون رو راحت کنیم: تو اکثر مواقع سایتتون سالمه و هیچ اتفاقی براش نیفتاده. فقط منابعش کم اومده. یعنی سایت خواسته یه کاری بکنه، هاست گفته «من انقدر جا ندارم» و کلاً کار رو نیمه‌کاره ول کرده. راه‌حلش هم خیلی ساده‌ست: میرید منابعش رو زیاد می‌کنید. تو این مقاله سه تا روش براتون می‌گیم، از ساده‌ترین تا دستی‌ترین، که هر کدوم رو تونستید همون رو بزنید جلو برید.

آنچه در این مقاله می‌خوانید

ارور ۵۰۰ و صفحه سفید در وردپرس چرا رخ می‌دهد؟

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

نتیجه این می‌شه که سرور وسط کار دستش رو می‌کِشه و پردازش رو قطع می‌کنه. شما هم از اون ور فقط یه صفحه‌ی سفید یا یه ارور بی‌ربط می‌بینید.

نقش memory_limit و منابع PHP در بروز این خطاها

اون چیزی که این سقف رو تعیین می‌کنه، یه سری تنظیمات PHP هست که مهم‌ترینش memory_limit هست. یعنی حداکثر رَمی که سایتتون اجازه داره مصرف کنه. کنارش هم max_execution_time هست که میگه یه اسکریپت چقدر وقت داره اجرا بشه.

معمولاً هاست‌ها این اعداد رو پیش‌فرض پایین می‌ذارن (مثلاً ۱۲۸ مگ حافظه و ۳۰ ثانیه زمان) که برای یه سایت خالی کافیه، ولی برای یه سایت واقعی با ده تا افزونه؟ نه، اصلاً کافی نیست. کاری که می‌خوایم بکنیم اینه که این اعداد رو ببریم بالا.

روش اول: افزایش منابع هاست با MultiPHP INI Editor در سی‌پنل

این ساده‌ترین راهه و اگه هاستتون این گزینه رو داشته باشه، کارتون تو دو دقیقه تمومه.

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

ورود به بخش Software و انتخاب MultiPHP INI Editor

اول وارد پنل سی‌پنل خودتون بشید. بعد برید تو بخش Software و از اونجا گزینه‌ی MultiPHP INI Editor رو انتخاب کنید (تو تصویر زیر دقیقاً مشخصش کردیم براتون).

ویرایشگر منابع سایت
ویرایشگر منابع سایت

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

تغییر مقدار Memory_limit به 1024M

اینجا دنبال گزینه‌ی memory_limit بگردید. هر عددی که الان توشه رو پاک کنید و بذارید 1024M.

با این کار عملاً یک گیگ رَم به سایتتون اختصاص دادید که برای اکثر سایت‌های وردپرسی بیشتر از کافیه.

تغییر مقادیر ۳۰ و ۶۰ به ۹۰

یه چیز مهم که خیلیا فراموشش می‌کنن: تو همون صفحه دو تا عدد ۳۰ و ۶۰ می‌بینید (تو تصویر بالا با کادر قرمز مشخصشون کردیم). حتماً هر دوتاشون رو بذارید روی 90.

چرا؟ چون فقط زیاد کردن حافظه کافی نیست. اگه زمان اجرا کم باشه، سایتتون وسط کار باز هم قطع میشه. این دو تا باید با هم بالا برن.

افزایش حافظه سایت
افزایش حافظه سایت

آخرش هم دکمه‌ی Apply یا Save رو بزنید. تمام.

توضیح کاربردی گزینه‌های مهم در ویرایشگر MultiPHP INI

حالا که دارید این اعداد رو دستکاری می‌کنید، بد نیست بدونید دقیقاً دارید چیکار می‌کنید. اینجوری دفعه‌ی بعد کورکورانه عدد نمی‌ذارید.

max_execution_time چیست و چه مقداری بگذاریم؟

همون عدد ۳۰ یا ۶۰ که بالا گفتیم. این مشخص می‌کنه یه اسکریپت یا افزونه چند ثانیه وقت داره روی سرور اجرا بشه. اگه کارش تو این مدت تموم نشد، سرور می‌گه «وقتت تمومه» و قطعش می‌کنه.

بردنش روی ۹۰ یا حتی ۱۸۰ باعث میشه پردازش‌های سنگین مثل آپدیت قالب یا نصب افزونه‌های حجیم نصفه‌کاره رها نشن.

upload_max_filesize و رفع خطای محدودیت آپلود

این یکی رو حتماً یه جایی دیدید: می‌خواید یه قالب یا ویدیو آپلود کنید و وردپرس می‌گه «حجم فایل بیشتر از حد مجازه». مقصر همینه.

پیشنهاد ما اینه که بذاریدش روی 256M یا اگه فایل‌های سنگین‌تری دارید 512M.

post_max_size و رابطه‌ی آن با حجم آپلود

این حداکثر حجمیه که سایت می‌تونه تو یه درخواست (Request) بفرسته. یه قانون ساده براش هست که یادتون نره:

post_max_size همیشه باید مساوی یا کمی بیشتر از upload_max_filesize باشه.

چون اگه برعکس باشه، فایل ۲۵۶ مگی رو قبول می‌کنید ولی موقع ارسال گیر می‌کنه. یعنی هر دو رو بذارید ۲۵۶M، یا اولی رو ۲۵۶ و دومی رو ۳۰۰.

روش دوم: افزایش منابع از طریق منوی Select PHP Version (LVE Manager)

خب حالا فرض کنید رفتید تو سی‌پنل و اصلاً MultiPHP INI Editor نبود. یا بود ولی تغییراتتون اعمال نشد (آره، این اتفاق میفته).

تو این حالت برید سراغ یه بخش دیگه تو همون قسمت Software به اسم Select PHP Version (بعضی جاها بهش LVE Manager هم می‌گن).

واردش که شدید، روی تب Options کلیک کنید. اینجا دقیقاً همون دستورات آشنا رو می‌بینید: memory_limit، max_execution_time و بقیه. با این تفاوت که اینجا به جای تایپ کردن، از منوهای کشویی مقدار رو انتخاب می‌کنید.

راستش تجربه‌ی ما اینه که رو هاست‌های ابری و سرورهای مبتنی بر CloudLinux، این روش خیلی پایدارتر جواب میده.

روش سوم: ساخت یا ویرایش دستی فایل php.ini از طریق File Manager

اگه هیچ‌کدوم از این دو تا ابزار گرافیکی تو پنلتون نبود، ناامید نشید. دستی انجامش می‌دیم، همون‌قدر هم راحته.

بررسی وجود فایل php.ini یا user.ini در public_html

وارد File Manager هاستتون بشید و برید به پوشه‌ی اصلی سایت، یعنی public_html. اونجا یه نگاه بندازید ببینید فایلی به اسم php.ini یا user.ini وجود داره یا نه.

اگه بود که همون رو ویرایش کنید. اگه نبود، یه فایل متنی جدید بسازید و اسمش رو بذارید php.ini.

فایل php.ini
فایل php.ini

کدهای آماده برای قرار دادن در فایل php.ini

حالا این کدها رو کپی کنید بریزید توش و ذخیره کنید:

ini

memory_limit = 1024M
max_execution_time = 90
max_input_time = 90
upload_max_filesize = 256M
post_max_size = 256M

همین. سایتتون رو یه بار رفرش کنید و ببینید مشکل حل شده یا نه.

بررسی اعمال شدن تغییرات از طریق ابزار سلامت سایت وردپرس

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

وارد پیشخوان وردپرستون بشید و برید به ابزارها > سلامت سایت (Site Health). اونجا روی تب اطلاعات کلیک کنید و بخش سرور رو باز کنید.

خواندن اطلاعات سرور از سلامت سایت
خواندن اطلاعات سرور از سلامت سایت

تو این قسمت مقادیر زنده و واقعی رو می‌بینید: حداکثر حجم آپلود، حافظه‌ی مجاز PHP و حداکثر زمان اجرا. اگه اعدادی که گذاشتید اینجا نشون داده شد، یعنی کار تمومه و درست انجام شده. اگه نه، یعنی هاستتون تغییرات رو قبول نکرده و باید برید سراغ روش بعدی یا با پشتیبانی هاست حرف بزنید.

سقف مشخص منابع شرکت‌های هاستینگ

اینجا یه نکته‌ی مهم هست که خیلیا نمی‌دونن و بعد گیج میشن.

شما نمی‌تونید این اعداد رو بی‌نهایت ببرید بالا. هاست‌های اشتراکی لایه‌های امنیتی دارن که اجازه نمی‌دن یه سایت به تنهایی کل رَم و CPU سرور رو ببلعه. چون رو یه سرور اشتراکی، ده‌ها سایت دیگه هم هستن.

خطای ۵۰۳ در صورت عبور از سقف مجاز پلن

حالا اگه بیاید memory_limit رو روی عددی بذارید که از سقف مجاز پلن هاستتون بیشتره، چی میشه؟ سرور به جای اینکه مشکلتون رو حل کنه، بهتون خطای ۵۰۳ (Service Unavailable) یا ارور دیتابیس میده. یعنی وضعیت از قبل بدتر میشه!

پس این رو یادتون باشه: مقادیر رو پله‌پله ببرید بالا. اول ۲۵۶، بعد ۵۱۲، بعد ۱۰۲۴. هر جا سایت اوکی شد، همونجا وایسید.

چه زمانی باید به هاست قوی‌تر یا VPS ارتقا داد؟

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

اون موقع وقتشه که یا به یه پلن قوی‌تر ارتقا بدید، یا اگه ترافیک و حجم کارتون زیاده، برید سراغ سرور مجازی (VPS).

جلوگیری از ساسپند شدن هاست

یه چیزی رو صادقانه بگیم: گاهی افزایش منابع صرفاً پاک کردن صورت‌مسئله‌ست.

اگه سایتتون یهو و بدون دلیل با کمبود حافظه و ارور ۵۰۰ مواجه شده، به احتمال زیاد یه مشکل واقعی زیرش خوابیده. مثلاً یه حلقه‌ی تکرار بی‌نهایت تو کدهای قالب، یا یه افزونه‌ی سنگین و ناسازگار که تازه نصب کردید.

معمولاً مقصرها اینان: افزونه‌های آمارگیر درون‌سایتی، اسکنرهای امنیتی که مدام در حال اسکن کردنن، و افزونه‌های صفحه‌ساز سنگین.

شناسایی Memory Leak و کوئری‌های سنگین با افزونه Query Monitor

پیشنهاد ما اینه که کنار افزایش منابع، افزونه‌ی Query Monitor رو هم نصب کنید.

افزونه کوئری مانیتور
افزونه کوئری مانیتور

این افزونه بهتون نشون میده کدوم کوئری‌های دیتابیس سنگینن و کدوم کدها دارن رَم سایتتون رو می‌خورن (همون چیزی که بهش می‌گن Memory Leak). وقتی فهمیدید مقصر کیه، حذفش کنید یا جایگزینش کنید.

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

سوالات متداول

اگه گزینه MultiPHP INI Editor تو هاستم نبود چیکار کنم؟

دو تا راه دارید: یا برید سراغ Select PHP Version تو همون بخش Software، یا فایل php.ini رو دستی تو public_html بسازید. هر دو روش رو بالا کامل توضیح دادیم.

بهترین مقدار memory_limit برای وردپرس چقدره؟

برای یه سایت معمولی ۲۵۶M کافیه. برای فروشگاه‌های ووکامرس یا سایت‌های شلوغ، ۵۱۲M تا ۱۰۲۴M منطقی‌تره. ولی یادتون باشه از سقف مجاز پلن هاستتون بالاتر نرید.

تغییرات php.ini بعد از چه مدت اعمال میشه؟

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

جمع‌بندی

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

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

موفق باشید 🙂

نظر شما در این مورد چیه؟

  1. U409137۵ اردیبهشت ۱۴۰۵

    درود
    برای سیستم عامل مک باید چطوری مقدارم رم مموری لیمیت رو افزایش بدیم؟
    چندین فایل با اسم php.ini وجود داره باید همشون رو ادیت کرد؟

    • تیم پشتیبانیتیم پشتیبانی۲۳ اردیبهشت ۱۴۰۵

      این تنظیمات روی سرویس هاست شما قرار دارد. بایستی تنظیمات هاست را بررسی کنید.

  2. U380102۲۲ اردیبهشت ۱۴۰۴

    سلام من multiphp ini editor را به صورت کلی ندارم میتونید راهنمایی کنید چکارم کنم ؟ و مشکل از چی هستش ؟

  3. U26574۹ تیر ۱۳۹۹

    من از wamp سرور استفاده میکنم این گزینه کجاش میباشد؟

    • تیم پشتیبانیتیم پشتیبانی۹ تیر ۱۳۹۹

      سلام
      باید آموزش افزایش حجم آپلود در لوکال هاست رو سرچ کنید

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.