suPHP چیه؟

خوب تو یکی از پست های قبلی در مورد suexec گفتم و خوب یه عیب داشت اونم مشکل در http authentication بود. برای همین اومدم سراغ suphp. خیلی ساده و خوب کار می کنه . من که ازش خوشم اومد 😉 . در تعریف suphp چیز جدید نیست همان تعریف suexec را می یارم .

یکی از موضوعات مهم در میزبانی اشتراکی (این هم ترجمه ای از share hosting 😉 ) موضوع دسترسی پوشه هاست. در صورتی که شما یک پوشه برای بارگذاری فایل در وبلاگتون در نظر گرفته باشید ، اولین کاری که به ذهنتون می رسه این هست که دسترسی ها را به 777 تغییر بدید. این موضوع باعث می شه که کاربرای دیگه هم به پوشه شما دسترسی داشته باشند و خوب مشکلاتی که ممکنه پیش بیاد.

از جمله راه حل های موجود SuExec, suPHP , Openbasedir, apache2-mpm-itk و چند تای دیگه است که الان به ذهنم نمی رسه. همه اینها کارشون بر اساس یک اصل هست: اجرای اسکریپتهای کاربر با مجوز دسترسی خود کاربر، نه کابر آپاچی. که در اینجا به توضیح suphp می پردازیم.

بسته های مورد نیاز

aptitude install apache2-mpm-worker php5-cgi libapache2-mod-suphp

ماژول های مورد نیاز

برای شروع از غیر فعال بودن ماژول هایی که با suphp تداخل دارند مطمئن شوید

a2dismod suexec php5 actions

و بعد ماژول suphp را فعال کنید

a2enmod suphp

برای اطمینان از اعمال تغییرات آپاچی را مجددا راه اندازی کنید

/etc/init.d/apache2 restart

پیکربندی یک virtual host

نیاز به تغییر خواستی نیستید. با تعریف یک virtual host ساده کل کار حله. در حقیقت نیازی به پیکربندی خاصی ندارید. با فعال کردن ماژول پیکربندی ها اعمال می شه. این فایل پیکربندی منه:

<VirtualHost *:80>

ServerAdmin webmaster@linuxmotto.local
ServerName linuxmotto.local
DocumentRoot /home/behrad/public_html/
DirectoryIndex index.php index.html
ErrorLog /home/behrad/log/error.log
CustomLog /home/behrad/log/access.log combined

<Directory /home/behrad/public_html/>
Options -Indexes FollowSymLinks -MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

تست صحت عملکرد تنظیمات انجام شده

برای این منظور کافیه فایل var/log/suphp/suphp.log/ را با tail زیر نظر بگیرید. خوب بهتون نشون می ده که درخواست ها با چه uid اجرا میشه. در ضمن در صورتی که مشکل داشتید فایل پیکربندی etc/suphp/suphp.conf/ را ببینید. من نیازی به تغییر پیدا نکردم ولی اگه مشکل داشتید بهش یه نگاهی بندازید. در عین حال با دیدن فایل کانفیگ می فهمید داره بر چه اساسی کار می کنه.

معایب

مشکلی با هاش داشتم این بود که نتونستم با zend نصبش کنم.

نکته: با راه اندازی suphp دیگه پارامترهای php مانند php_flag و php_value در فایل htaccess. خوانده نمی شه و شما باید یک فایل php.ini بسازید و تغییرات مورد نظرتون را اونجا بنویسید.

منابع

http://blog.stuartherbert.com/php/2008/01/18/using-suphp-to-secure-a-shared-server/

http://forums.debian.net/viewtopic.php?f=16&t=50780

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *