بخش PHP Settings در کنترل پنل پلسک به شما امکان میدهد تنظیمات مرتبط با PHP را برای هر وبسایت یا دامنه مدیریت کنید.
برای دسترسی به تنظیمات PHP، ابتدا باید وارد پنل پلسک شوید:
پس از ورود موفقیتآمیز، دامنه یا وبسایتی که میخواهید تنظیمات PHP آن را تغییر دهید، انتخاب کنید.
پس از انتخاب دامنه، به بخش Websites & Domains بروید.
در صفحه باز شده، روی گزینه PHP Settings کلیک کنید. این بخش به شما امکان تنظیم و تغییر پیکربندی PHP مربوط به وبسایتتان را میدهد.
تغییر نسخه PHP
1. نسخه php:
در بخش PHP Settings، اولین گزینهای که مشاهده میکنید، PHP Support و PHP version است. در این بخش میتوانید نسخه PHP مورد استفاده برای وبسایت خود را انتخاب کنید.
PHP version: از منوی کشویی نسخههای مختلف PHP مانند 7.4، 8.0، 8.1 و غیره موجود است. انتخاب نسخه PHP بسته به نیاز وبسایت و سازگاری کدهای شما انجام میشود.
نکته: اگر نسخه قدیمی PHP را استفاده میکنید و میخواهید به نسخه جدیدتر ارتقا دهید، همیشه از وبسایت خود پشتیبان تهیه کنید، زیرا ممکن است برخی از کدهای شما با نسخه جدید ناسازگار باشند.
2. موتور PHP
در برخی موارد ممکن است نیاز باشد PHP handler یا Execution mode را انتخاب کنید. به عنوان مثال، ممکن است بخواهید بین گزینههای زیر انتخاب کنید:
FastCGI Application (مناسب برای عملکرد بهتر و کاهش مصرف منابع)
Apache module (ساده و کلاسیک، اما عملکرد ممکن است کندتر باشد)
FPM application (برای بهینهسازی عملکرد سرور و مدیریت بهتر منابع)
هر کدام از این گزینهها در شرایط مختلف ممکن است بر عملکرد سایت تاثیر بگذارند. بهتر است قبل از تغییر این تنظیمات با دقت آنها را مطالعه کرده یا با پشتیبانی فنی مشورت کنید.
بخش Performance and security settings
در بخش PHP Settings کنترل پنل پلسک، گزینههای Performance and security settings تنظیمات مهمی هستند که برای مدیریت رفتار PHP در وبسایتها مورد استفاده قرار میگیرند. این گزینهها به شما اجازه میدهند تنظیمات پایه و کلیدی مربوط به اجرای اسکریپتها، آپلود فایلها و مدیریت ورودی و خروجی PHP را کنترل کنید. در ادامه، هر یک از این گزینهها را بهصورت دقیق توضیح میدهم.
1. memory_limit
این تنظیم مشخص میکند که یک اسکریپت PHP تا چه اندازه حافظه (RAM) میتواند استفاده کند.
کاربرد: زمانی که اسکریپتهای پیچیده یا سنگین (مانند سیستمهای مدیریت محتوا یا پردازش تصاویر) اجرا میشوند، ممکن است نیاز به حافظه بیشتری داشته باشند. مقدار پیشفرض معمولاً 128M یا 256M است. برای اسکریپتهای بزرگتر، میتوانید این مقدار را افزایش دهید.
مثال: برای اسکریپتهای سنگین مانند سیستمهای مدیریت محتوا (CMS) یا فروشگاههای آنلاین، افزایش این مقدار میتواند به جلوگیری از خطاهای Out of Memory کمک کند.
2. max_execution_time
این گزینه مدت زمانی که یک اسکریپت PHP میتواند اجرا شود را به ثانیه مشخص میکند. پس از گذشت این زمان، اسکریپت متوقف میشود.
کاربرد: اگر یک اسکریپت به زمان بیشتری برای اجرا نیاز دارد (مانند وارد کردن دادههای بزرگ به دیتابیس یا پردازشهای طولانی)، باید این مقدار را افزایش دهید. مقدار پیشفرض معمولاً 30 یا 60 ثانیه است، اما برای کارهای پیچیدهتر ممکن است به 300 ثانیه یا بیشتر نیاز داشته باشید.
مثال: در وارد کردن دادههای بزرگ یا اجرای اسکریپتهای پیچیده مانند بکاپ گیری یا بروزرسانیهای نرمافزار، این مقدار باید بیشتر باشد.
3. max_input_time
این مقدار حداکثر زمانی را مشخص میکند که PHP برای دریافت ورودیها (POST، GET، فایلهای آپلود شده) منتظر میماند.
کاربرد: این تنظیم برای پردازش فرمهایی که شامل دادههای زیاد یا فایلهای بزرگ هستند، مفید است. اگر اسکریپت شما ورودیهای زیادی دریافت میکند یا فایلهای بزرگ آپلود میشود، میتوانید این مقدار را افزایش دهید.
4. post_max_size
این گزینه حداکثر اندازه کل دادهای که از طریق متد POST میتواند به سرور ارسال شود را تعیین میکند.
کاربرد: این مقدار شامل همه دادههای ارسال شده از طریق فرمها، آپلود فایلها و درخواستهای POST است. این مقدار باید بزرگتر از upload_max_filesize باشد تا فایلهای آپلودی بهدرستی منتقل شوند.
مثال: اگر upload_max_filesize را 32M تنظیم کردهاید، مقدار post_max_size باید حداقل 34M باشد.
5. upload_max_filesize
این گزینه حداکثر اندازه فایلی را که از طریق فرمها میتوان آپلود کرد مشخص میکند.
کاربرد: اگر کاربران وبسایت شما نیاز به آپلود فایلهایی مانند تصاویر یا ویدئوهای بزرگ دارند، باید این مقدار را متناسب با نیازتان تنظیم کنید. بهعنوان مثال، اگر فایلهای حجیم مانند ویدئو آپلود میکنید، ممکن است این مقدار را به 64M یا 128M افزایش دهید.
نکته: این مقدار باید کمتر یا برابر با post_max_size باشد.
6. opcache.enable
بخش Common settings
در کنترل پنل پلسک، برخی از تنظیمات PHP ممکن است برای امنیت، عملکرد و سازگاری سایتها مهم باشند. گزینههایCommon settings جزو تنظیماتی هستند که برای عملکرد صحیح اسکریپتهای PHP و کنترل منابع سرور کاربرد دارند. در ادامه هر کدام از این تنظیمات را با جزئیات بیشتری توضیح میدهم.
1. include_path
include_path یکی از تنظیمات مهم در PHP است که مسیر (یا مسیرهایی) را تعیین میکند که PHP برای پیدا کردن فایلهای اضافهشده از طریق دستورات include و require جستجو میکند.
کاربرد: زمانی که در اسکریپت PHP از دستورات include یا require برای فراخوانی فایلهای خارجی (مانند فایلهای پیکربندی یا کتابخانهها) استفاده میکنید، PHP ابتدا مسیرهای تعریفشده در include_path را بررسی میکند تا فایل مورد نظر را پیدا کند. اگر مسیر صحیحی تنظیم نشده باشد، PHP قادر به یافتن فایلها نخواهد بود و خطاهایی مانند File Not Found رخ میدهد.
ساختار مثال:
include_path = ".:/usr/local/php/includes"
در این مثال، PHP ابتدا مسیر فعلی (".") و سپس مسیر "/usr/local/php/includes" را برای پیدا کردن فایلها بررسی میکند.
2. session.save_path
این تنظیم مشخص میکند که فایلهای ذخیرهسازی مربوط به Sessionها (نشستها) کجا در سرور ذخیره شوند.
کاربرد:در PHP، Sessionها برای ذخیره اطلاعات موقت کاربر مانند اطلاعات ورود به سیستم استفاده میشوند. PHP برای مدیریت نشستها از فایلهایی استفاده میکند که این فایلها در مسیر مشخصشده توسط session.save_path ذخیره میشوند.
اگر این مسیر به درستی تنظیم نشده باشد یا دسترسی کافی به آن وجود نداشته باشد، PHP قادر به ذخیره نشستها نخواهد بود و مشکلاتی مانند از دست رفتن اطلاعات کاربر در حین کار با وبسایت رخ میدهد.
ساختار مثال:
session.save_path = "/var/lib/php/session"
در این مثال، فایلهای نشست در مسیر /var/lib/php/session ذخیره میشوند.
نکته:مهم است که این مسیر دسترسی نوشتنی (writeable) برای PHP داشته باشد، در غیر این صورت نشستها به درستی کار نخواهند کرد.
اگر در یک محیط چندگانه (مانند هاستهای اشتراکی) کار میکنید، مطمئن شوید که نشستها در مسیری امن ذخیره شوند تا از دسترسی سایر کاربران به فایلهای نشست جلوگیری شود.
3. open_basedir
این گزینه برای محدود کردن دسترسی PHP به دایرکتوریهای خاصی در سرور استفاده میشود. با استفاده از open_basedir، شما میتوانید مشخص کنید که PHP فقط به مسیرهایی که به صورت مشخص اجازه داده شدهاند دسترسی داشته باشد.
کاربرد:این تنظیم به دلایل امنیتی استفاده میشود تا PHP نتواند به فایلهای خارج از مسیرهای مشخصشده دسترسی داشته باشد. این کار باعث جلوگیری از دسترسی غیرمجاز به فایلهای سیستمی یا اطلاعات حساس در سرور میشود.
به عنوان مثال، شما میتوانید PHP را به گونهای پیکربندی کنید که فقط به دایرکتوری وبسایتها یا دایرکتوریهای مرتبط با پروژه دسترسی داشته باشد و نتواند فایلهای سیستم عامل یا فایلهای سایر کاربران را بخواند.
ساختار مثال:
open_basedir = "/var/www/vhosts/example.com/:/tmp/"
در این مثال، PHP تنها به مسیر /var/www/vhosts/example.com/ و /tmp/ دسترسی دارد و نمیتواند فایلهای خارج از این مسیرها را بخواند یا اجرا کند.
نکته:
open_basedir برای جلوگیری از حملات امنیتی، مانند Directory Traversal، بسیار مفید است. این حملات میتوانند به مهاجم اجازه دهند که فایلهای خارج از دایرکتوری وبسایت شما را مشاهده یا تغییر دهد.
اگر از CMSها یا نرمافزارهای پیچیده استفاده میکنید که نیاز به دسترسی به مسیرهای مختلف دارند، باید مطمئن شوید که تمام مسیرهای لازم در open_basedir تعریف شده باشند.
4. short_open_tag
این گزینه تعیین میکند که آیا PHP میتواند از تگهای کوتاه PHP (<? به جای <?php) استفاده کند یا خیر.
کاربرد:در نسخههای قدیمیتر PHP، استفاده از تگهای کوتاه PHP رایج بود. به جای استفاده از <?php برای شروع کد PHP، برنامهنویسان از <? استفاده میکردند. با این حال، تگهای کوتاه میتوانند مشکلات سازگاری ایجاد کنند، بهخصوص اگر فایلهای HTML شامل تگهای XML باشند که با <? شروع میشوند.
با غیرفعال کردن short_open_tag، میتوانید مطمئن شوید که فقط از تگ استاندارد PHP (<?php) استفاده شود. این کار باعث افزایش سازگاری کد با سرورها و نسخههای جدیدتر PHP میشود.
مثال:
short_open_tag = Off
در این مثال، استفاده از تگهای کوتاه PHP غیرفعال شده است و برنامهنویسان باید از تگهای کامل <?php استفاده کنند.
نکته:
در پروژههای جدید، بهتر است از تگهای کوتاه استفاده نشود تا مشکلات احتمالی با سایر تگهای HTML یا XML رخ ندهد.
بسیاری از چارچوبهای مدرن و سیستمهای مدیریت محتوا، مانند وردپرس، به صورت پیشفرض از تگهای کامل PHP استفاده میکنند و تگهای کوتاه را پشتیبانی نمیکنند.
5. display_errors
این گزینه تعیین میکند که آیا خطاها در مرورگر به کاربران نمایش داده شوند یا خیر.
کاربرد: در محیطهای توسعه، فعال کردن این گزینه مفید است تا بتوانید خطاها را سریع شناسایی و برطرف کنید. اما در محیطهای تولید (Production)، این گزینه باید خاموش باشد تا اطلاعات حساس خطا به کاربران نهایی نمایش داده نشود.
نکته: در محیط تولید، این گزینه را خاموش نگه دارید و از لاگ خطاها (log_errors) برای ذخیره خطاها در فایل لاگ استفاده کنید.
6. log_errors
این گزینه مشخص میکند که آیا خطاها در فایلهای لاگ ثبت شوند یا خیر.
کاربرد: فعال کردن این گزینه به شما اجازه میدهد تا خطاها در فایلهای لاگ ذخیره شوند و در صورت نیاز به بررسی دقیق، بتوانید آنها را مرور کنید. این گزینه برای رفع مشکلات و اشکالزدایی بسیار مهم است.
7. error_reporting
این گزینه تعیین میکند که چه نوع خطاهایی باید گزارش شوند.
کاربرد: شما میتوانید سطح گزارشدهی خطاها را با انتخابهای مختلف تنظیم کنید. به عنوان مثال، E_ALL تمام خطاها و هشدارها را گزارش میدهد. در محیط تولید، معمولاً خطاهای هشداردهنده و اعلانها (notices) خاموش نگه داشته میشوند.
FastCGI settings
تنظیمات FastCGI در کنترل پنل پلسک به شما این امکان را میدهد تا عملکرد وبسرور خود را بهینه کنید و در عین حال کنترل دقیقی روی منابع سیستم و اجرای اسکریپتهای PHP داشته باشید. FastCGI یک پروتکل است که بهطور مداوم اسکریپتها را در حالت اجرا نگه میدارد و باعث میشود اجرای آنها سریعتر و کارآمدتر باشد، چرا که نیازی به اجرای مجدد برای هر درخواست نیست.
این تنظیمات به شما اجازه میدهند تا کنترل کنید که FastCGI چگونه اسکریپتهای PHP را مدیریت و اجرا کند. با فعالسازی FastCGI، میتوانید زمانهای انتظار و تعداد درخواستهای پردازشی را تنظیم کنید تا بهرهوری سرور بهینه شود.
1.Enable FastCGI settings
این گزینه برای فعالسازی یا غیرفعالسازی تنظیمات FastCGI استفاده میشود. اگر فعال باشد، تنظیمات مربوط به FastCGI اعمال میشود.
کاربرد: فعال کردن این تنظیمات میتواند باعث بهبود عملکرد سایتهایی شود که نیاز به پردازش سریع درخواستهای PHP دارند و بار سرور را کاهش میدهد.
2.maxInstances
این پارامتر حداکثر تعداد پردازههای FastCGI که میتوانند همزمان اجرا شوند را مشخص میکند. هر پردازه FastCGI یک درخواست را پردازش میکند.
کاربرد: تنظیم این مقدار میتواند کنترل کند که چندین درخواست PHP بهصورت همزمان پردازش شوند. مقدار بالاتر میتواند به پردازش درخواستهای همزمان بیشتر کمک کند، اما استفاده بیش از حد از منابع سیستم را نیز افزایش میدهد.
نکته: اگر وبسایت شما ترافیک سنگینی دارد، میتوانید این مقدار را افزایش دهید تا درخواستهای همزمان بیشتری پاسخ داده شوند. با این حال، باید توجه داشت که افزایش بیش از حد این مقدار میتواند باعث کاهش کارایی کلی سرور شود.
3.activityTimeout
این گزینه مدت زمانی (به ثانیه) را تعیین میکند که یک پردازه FastCGI میتواند منتظر بماند تا فعالیتی از سمت کلاینت دریافت کند. اگر در این بازه زمانی هیچ فعالیتی ثبت نشود، FastCGI پردازه را متوقف میکند.
کاربرد: برای جلوگیری از استفاده بیمورد منابع سرور، این تنظیم برای بستن پردازههایی که بیکار ماندهاند به کار میرود. مقدار کمتر برای این گزینه میتواند سریعتر منابع را آزاد کند، اما اگر تنظیمات بیش از حد محدود باشد، ممکن است درخواستهایی که نیاز به زمان بیشتری دارند به خطا ختم شوند.
مثال: اگر activityTimeout = 30 تنظیم شود، پردازه FastCGI پس از 30 ثانیه عدم فعالیت متوقف میشود.
4.requestTimeout
این تنظیم مدت زمانی را تعیین میکند که FastCGI منتظر میماند تا یک درخواست کامل پردازش شود. اگر درخواست در این مدت زمان پردازش نشود، پردازه متوقف میشود.
کاربرد: برای محدود کردن درخواستهایی که مدت زمان طولانی برای پردازش میبرند. این گزینه میتواند به جلوگیری از هنگکردن پردازهها یا پردازشهای طولانی کمک کند. برای درخواستهای طولانی مانند اسکریپتهای پیچیده، این مقدار باید بیشتر در نظر گرفته شود.
مثال: اگر requestTimeout = 120 باشد، پردازش یک درخواست بیش از 120 ثانیه نمیتواند طول بکشد و در صورت رسیدن به این حد، پردازه متوقف میشود.
5.instanceMaxRequests
این گزینه تعداد حداکثری درخواستهایی را که هر پردازه FastCGI میتواند قبل از خاتمه پردازش کند، مشخص میکند. پس از رسیدن به این تعداد درخواست، پردازه بسته شده و یک پردازه جدید برای پردازش درخواستهای بعدی ایجاد میشود.
کاربرد: این گزینه برای جلوگیری از استفاده طولانی مدت یک پردازه خاص استفاده میشود که میتواند باعث به وجود آمدن مشکلاتی مانند نشتی حافظه (Memory Leaks) شود. با محدود کردن تعداد درخواستهایی که هر پردازه میتواند پردازش کند، از استفاده نامناسب منابع جلوگیری میشود.
مثال: اگر instanceMaxRequests = 1000 باشد، هر پردازه FastCGI حداکثر 1000 درخواست را پردازش میکند و سپس بسته میشود.
6.queueLength
این تنظیم تعداد درخواستهایی را که میتوانند در صف منتظر بمانند تا توسط FastCGI پردازش شوند، مشخص میکند. اگر تعداد درخواستهای در صف بیش از این مقدار شود، درخواستهای جدید به خطا خواهند خورد.
کاربرد: تنظیم این مقدار برای کنترل ترافیک و جلوگیری از ایجاد بار زیاد بر روی سرور مفید است. اگر تعداد درخواستها از این مقدار بیشتر شود، درخواستهای اضافی حذف شده و به کاربر خطا ارسال میشود. افزایش این مقدار میتواند به مدیریت بهتر ترافیک بالا کمک کند، اما باید با توجه به منابع سرور تنظیم شود.
مثال: اگر queueLength = 50 تنظیم شده باشد، حداکثر 50 درخواست در صف منتظر پردازش توسط FastCGI خواهند ماند.
7.rapidFailsPerMinute
این گزینه تعداد حداکثری خطاهای مکرر را که میتواند در یک دقیقه رخ دهد، تنظیم میکند. اگر تعداد خطاهای FastCGI از این مقدار تجاوز کند، پردازه متوقف شده و FastCGI متوقف میشود.
کاربرد: این تنظیم برای جلوگیری از افزایش غیرمنتظره خطاهای پردازههای FastCGI و استفاده بیش از حد از منابع سرور مفید است. اگر تعداد خطاها زیاد باشد، ممکن است نشاندهنده وجود مشکل در اسکریپتها یا منابع سرور باشد.
مثال: اگر rapidFailsPerMinute = 5 باشد، FastCGI در صورت وقوع 5 خطا در یک دقیقه، پردازه را متوقف میکند.