در هاست های سی پنل همانطور که می دانید می توانیم با فعالسازی Suphp این امکان که هر کاربر یک PHP.ini اختصاصی داشته باشد فراهم کنیم .
اما این مزیت ممکن است منجر به یک ضعف امنیتی بزرگ بر روی سرور ایجاد شود . شاید شما بعنوان مدیر سرور فقط خواسته باشید تغییرات محدودی مثل register_globals توسط کاربر ویرایش شود و خیلی از پارامترهای مهم در PHP را نخواهید کاربر تغییر دهد .
میزان استفاده از حاظفه ، میزان آپلود فایل ، POST MAX و خیلی چیزها را محدود کردیم که کاربر بیش از اندازه از آپاچی ریسورس نگیرد که کاربر با ایجاد یک PHP.ini این محدودیت ها را از بین ببرد .
اما کلا هم نمی خواهیم دسترسی او را از PHP.ini خارج کنیم ! مثلا بعضی از چیزها مثل register_globals را بتونه تغییر دهد . پس چه کنیم ؟
من در این مورد مطالعات زیادی کردم . چرخی در فروم سی پنل و تنظمیات easyapache انداختم و به یک راهکار خوب رسیدم .
ابتدا virtual host پیش فرض را تغییر می دهیم :
این فایل را باز می کنیم :
/var/cpanel/templates/apache2/vhost.default
در قسمتی که از suphp نوشته را به صورت زیر تغییر می دهیم :
<IfModule mod_suphp.c>
suPHP_UserGroup [% vhost.user %] [% vhost.group %]
<Location />
suPHP_ConfigPath /usr/local/lib
</Location>
</IfModule>
اینکار باعث میشه تمام هاست ها به اجبار PHP.ini خود را از شاخه /usr/local/lib بخوانند .
* مثلا برای اکانتهایی که بخواهند تغییراتی در php.ini بدهند ، خودمان در یک مسیری که کاربر دسترسی نداشته باشد یک PHP.ini با تنظیماتی که می خواهد درست می کنیم و مسیرش را از داخل httpd.conf تغییر می دهیم .
حالا تغییراتی که دادیم بخواهیم اعمال شود اسکریپت زیر را اجرا می کنیم :
/scripts/rebuildhttpdconf