وب سرور آپاچی به صورت معمول هیچ اسکرپت PHP را نمیتواند پشتیبانی کند . برای اجرای Script ها نیاز به ماژول های خاصی دارد . Apache بدون داشتن ماژول های کانفیگ شده مناسب امکان شناسایی این اسکریپت ها را نخواد داشت و دستورات PHP اجرا نمیشوند
Cpanel و Plesk از چه PHP Handers هایی پشتیبانی میکنند؟
cPanel | Plesk |
---|---|
DSO/mod_php | Apache Module/mod_php |
CGI | CGI |
FCGI/FastCGI | FCGI/FastCGI |
PHP-FPM | PHP-FPM |
suPHP | — (CGI w/ suExec enabled) |
LSAPI | — (unless LiteSpeed Web Server is installed) |
در این مقاله به شما خواهیم آموخت که هر PHP handler چگونه کار میکند و چه معایب و چه مزایایی دارد
هر ماژول روش متفاوتی را برای تجزیه PHP ارائه می دهد.
DSO/Apache Module
به این حالت mod_php نیز گفته می شود. این ماژول به خود Apache امکان تجزیه و نمایش مستقیم فایلهای PHP را می دهد. اسکریپت های PHP تجزیه شده توسط mod_php همان کاربری است که خود Apache انجام می دهد (به جای حساب کاربری که فایل های PHP را میزبانی می کند.)
مزایا
- یکی از سریعترین هندلرهای موجود.
- با ماژول های mod_ruid2 یا mpm_itk کار می کند.
معایب
- فقط با یک نسخه واحد از PHP در سرورهای cPanel کار می کند (برای سرور هایی که سرویس هایی مانند CloudLinux نصب میکنند با توجه به امکان PHP Selectorمناسب نمیباشد ).
- اسکریپت ها به عنوان کاربر Apache به جای مالک دامنه یا زیر دامنه اجرا می شوند. به عنوان مثال ، در یک سرور cPanel ، اگر اسکریپت یک پرونده یا فهرست ایجاد کند ، مالکیت آن پرونده توسط کاربر “Nobody” صورت خواهد گرفت که می تواند هنگام ایجاد پشتیبان یا حذف مالک حساب ، مشکلاتی را ایجاد کند.
CGI
مخفف Common Gateway Interface است. با استفاده از این کنترل کننده ، سیستم اسکریپتهای PHP را به عنوان کاربری که دامنه یا زیر دامنه را در اختیار دارد اجرا می کند.
مزایا
- اسکریپت ها به عنوان کاربر دامنه یا زیر دامنه اجرا می شوند ، نه به عنوان کاربر Apache.
معایب
- یکی از کندترین هندلر ها ! ( اجرا کنندگان درخواست های PHP ) .
- با ذخیره کد PHP به خوبی کار نمی کند.
- نمی توان تغییرات پیکربندی PHP را در پرونده .htaccess قرار داد. ( در مواردی برای انجام تغییرات در CMSهایی مانند ورپرس این مورد میتواند بسیار مفید باشد و افزونه های که برای کشینگ استفاده میشود گاها با تغییر فایل .htacess میتوانند سرعت لود سایت را افزایش دهند و درخواست های PHP ورودی را بهینه کنند )
FCGI/FastCGI
FastCGI نوعی پروتکل CGI است که مزایای بیشتری نسبت به کنترل کننده قدیمی CGI دارد. با استفاده از این ماژول ، سیستم اسکریپت های PHP را به عنوان کاربر مالک دامنه یا زیر دامنه اجرا می کند. تفاوت هایی بین mod_fastcgi و mod_fcgid وجود دارد ، اما هیچ یک از آنها مربوط به دامنه این مقاله نیست.
مزایا
- اسکریپت ها به عنوان کاربر دامنه یا زیر دامنه اجرا می شوند ، نه به عنوان کاربر Apache.
- کنترل کننده بسیار سریع ( اجرای بسیار سریع درخواست های PHP )
- با حافظه پنهان کد PHP کار می کند. (PHP opcode caching)
معایب
- این کنترل کننده از بیشتر از سایر حافظه ها (رم Server) استفاده می کند.
- نمی توان تغییرات پیکربندی PHP را در پرونده .htaccess قرار داد.
PHP-FPM
FPM مخفف FastCGI Process Manager است. این یک روش بهبودیافته برای پیاده سازی FastCGI پردازش PHP است. با استفاده از این کنترل کننده ، سیستم اسکریپتهای PHP را به عنوان کاربری که دامنه یا زیر دامنه را در اختیار دارد اجرا می کند. هر استخر FPM می تواند تنظیمات مستقلی داشته باشد.
مزایا
- اسکریپت ها به عنوان کاربر دامنه یا زیر دامنه اجرا می شوند ، نه به عنوان کاربر Apache.
- یکی از سریعترین دسته های PHP. ( اجرای بسیار سریع درخواست های PHP )
- با حافظه پنهان کد PHP کار می کند. (PHP opcode caching)
- امکان سطح انعطاف پذیری اضافی در هر استخر را فراهم می کند.( استخر ها Poolهای اختصاصی میباشند که به صورت کاستوم میتوان آنها را ویرایش کرد و تعداد درخواست های هر پروسه را با ان محدود کرد )
معایب
- این کنترل کننده می تواند بیش از هر کنترل کننده دیگری که در اینجا ذکر شده است از حافظه (ٍServer Ram) استفاده کند ، اما این به تعداد سایتهایی که از PHP-FPM استفاده می کنند و پیکربندی استخر FPM بستگی دارد.
- مدیریت می تواند تا حدودی پیچیده تر باشد.
- نمی توان تغییرات پیکربندی PHP را در پرونده .htaccess قرار داد و برخی از دستورالعمل ها فقط در سطح جهانی قابل تغییر هستند.
suPHP
این کنترل کننده به طور خاص برای ارائه اسکریپت های PHP به عنوان مالک دامنه یا زیر دامنه ای که اسکریپت PHP را اجرا می کند ، طراحی شده است. در سرورهای cPanel نیز اینگونه پیکربندی شده است که اجازه اجرای فایلهای دارای مجوزهای غیر ایمن را نمی دهد.
مزایا
- اسکریپت ها به عنوان کاربر دامنه یا زیر دامنه اجرا می شوند ، نه به عنوان کاربر Apache.
- cPanel suPHP را به گونه ای پیکربندی می کند که دسترسی و اجرای هرگونه پرونده یا فهرست با مجوزهای بالاتر از 755 را برای امنیت مسدود کند. ( این مورد در خصوص کانفیگ های سرور های لینوکسی که پیشرفته نیستند توصیه میشود )
معایب
- کندترین کنترل کننده PHP در بیشتر موارد.
- PHP Opcode caching هیچ بهبودی در عملکرد ندارد و فقط حافظه را هدر می دهد.
- نمی توان تغییرات پیکربندی PHP را در پرونده .htaccess قرار داد.
LSAPI
این هندلر SAPI LiteSpeed Web Server (LSWS) را پیاده سازی می کند. این کنترل کننده برای حداکثر مزایا به CloudLiunx یا LSWS نیاز دارد.
با استفاده از این کنترل کننده ، سیستم اسکریپتهای PHP را به عنوان کاربری که دامنه یا زیر دامنه را در اختیار دارد اجرا می کند.
مزایا
- طراحی شده است که در شرایط خاص بهتر یا بهتر از PHP-FPM عمل کند.
- استفاده از حافظه کمتر از بیشتر کنترل کننده های دیگر است. ( برای سرور هایی که رم پایینی دارند و یا پروسه بسیار بالایی دارند مناسب میباشد )
- اسکریپت ها به عنوان کاربر دامنه یا زیر دامنه اجرا می شوند ، نه به عنوان کاربر Apache.
- به پیکربندی خاصی نیاز نیست.
- می تواند مقادیر PHP را از داخل یک فایل .htaccess بخواند.
معایب
- بدون خرید یک محصول تجاری شخص ثالث ، مزایای کامل دریافت نمی کنید. ( نیاز به خرید لایسنس هایی مانند LiteSpeed و یا CloudLinux میباشد ( پارس وی دی اس هر دو لایسنس ذکر شده را ارایه میدهد )
- با mod_ruid2 یا mpm_itk سازگار نیست (اما نیازی به آنها نیست).
از کدام PHP hander استفاده کنم؟
آنچه باید استفاده کنید به منابع سرور شما و انواع سایتهای PHP مورد نیاز شما بستگی دارد. در cPanel ، توصیه می کنیم suPHP ، LSAPI یا FCGI را به طور پیش فرض انتخاب کنید. ما در Plesk FastCGI را توصیه می کنیم. هنگامی که نحوه کار PHP-FPM را فهمیدید ، ممکن است بخواهید حداقل برای برخی سایتها آن را فعال کنید و ببینید آیا اصلاً به شما کمک می کند یا خیر.
چگونه می توانم کنترل کننده PHP را که Apache استفاده می کند تغییر دهم؟
هندلر PHP مورد استفاده خود را بدون درک کامل اینکه هندلر چه کاری انجام می دهد ، تغییر ندهید. اگر از یک کنترل کننده که اسکریپت ها را به عنوان کاربر اجرا می کند به دیگری که این کار را نمی کند تغییر دهید یا برعکس ، ممکن است لازم باشد مجوزهای برخی از پرونده ها یا فهرست ها را تنظیم کنید تا Apache بتواند به درستی به موارد دسترسی پیدا کند.
در cPanel ، می توانید با کلیک بر روی MultiPHP Manager ، PHP handler را در WHM تنظیم کرده و سپس برگه PHP Handler را انتخاب کرده و هندور را در صورت لزوم تنظیم کنید.
تنظیمات در این قسمت از cPanel فقط درصورتی اعمال می شود که سایتی را برای استفاده از PHP-FPM در صفحه اصلی MultiPHP Manager پیکربندی نکرده باشید.
در Plesk ، به Service Plans> Example plan> PHP Settings> PHP را به عنوان اجرا کرده و کنترل کننده مورد نظر خود را انتخاب کنید.