در تنظیمات آپاجی ، کاربران هنوز در مورد نحوه اجرای PHP در حالتهای suPHP, suPHPexec and Apache suEXEC را بخوبی نمی دانند . قصد دارم در این تاپیک به معرفی این سرویس ها و فواید و مشکلات هریک از حالتهای فوق را بررسی نماییم .
توضیحاتی که خود سی پنل داده است :
SuExec forces all CGI scripts to run as the user. This can include PHP if PHP is set to run as CGI.
SuPHP forces all PHP scripts to run as the user (assuming PHP is set to run as SuPHP)
PHP as an Apache module is DSO. This is the default in a cPanel/WHM environment and results in PHP running as user nobody.
PHP as CGI will run PHP scripts as if they were CGI scripts. This has several side effects such as the script_name Superglobal variable returning the PHP CGI binary rather than the script.
Suexec کلیه اسکریپت های CGI تحت مجوز و نام کاربر اجرا می شود .
Suphp کلیه اسکریپت های PHP تحت مجوز و نام کاربر اجرا می شود .
DSO یعنی آپاچی بشکل Module می باشد و برنامه های PHP توسط یک کاربر عمومی nobody اجرا می شود . مزیت این روش سرعت است و PHP در سریعترین حالت ممکن اجرا می شود .
چون کلیه اسکریپت های PHP تحت یک نام اجرا می شوند و بر روی سرور های اشتراکی کاربران می توانند فایلهای PHP دیگر کاربران را اجرا نمایند ، این مشکل امنیتی با فعال نمودن open_basedir تا حدودی برطرف شده است .
DSO برای سرورهای اختصاصی ( تک کاربره ) و کسانی که دوست دارند برنامه های PHP در سریعترین حالت ممکن اجرا شوند ، مناسب می باشد !
Suphp این محدودیت را ایجاد می کند که هر کاربر اسکریپت PHP خود را اجرا نماید و سی پنل جهت امنیت این حالت را برای مدیران سرور توصیه می کند . مانیتورینگ را راحت می کند چون در دستوراتی مثل top متوجه می شوید که اسکریپت PHP درحال اجرا متعلق به کدام کاربر است . اما اشکالاتی بوجود میاد که شامل کارنکردن eAccelerator ، از کار افتادن htaccess ، امکان ویرایش کامل php.ini توسط کاربران و کندی PHP می باشد .
حالا مدیر سرور با توجه به اینکه چه کابرانی دارد و چه برنامه هایی می خواهد روی سرور اجرا کند ، می تواند با توجه به مزیبتهای هر روش ، مناسبرتین حالت که خواسته ها را برطرف نماید انتخاب نماید .