به طور پیش فرض، suPhp در حالت “paranoid” کامپایل شده است.
این به این معنی است که تنظیمات در فایلهای کاربر httpd.conf:
suPHP_UserGroup username username
همه فایل های php باید به نام کاربری شان متعلق باشند یا اینکه suPhp یک خطای “500 Internal Error Server” را ایجاد می کند .
این امر در مورد دامنه ها، زمانی که به طور معمول استفاده می شود، اعمال نمی شود، زیرا هر دامنه دارای VirtualHost خود با suPHP_UserGroup داخل آن با استفاده از تنظیمات صحیح است .
~username در حالت paranoid شکست خواهد خورد ، زیرا برای هر ~ username path هیچ virtualhost ی وجود ندارد و هیچ تنظیمات suPHP_UserGroup برای هر کاربر انجام نمی شود ، از این رو شما خطای 500 دریافت می کنید .
راه حل این است که suPhp را در حالت “مالک” به جای حالت “paranoid” کامپایل کنید.
برای انجام این کار دستور زیر را اجرا کنید :
cd /usr/local/directadmin/custombuild mkdir -p custom/suphp cp -fp configure/suphp/configure.suphp custom/suphp/configure.suphp perl -pi -e 's/paranoid/owner/' custom/suphp/configure.suphp ./build clean ./build suphp cd /usr/local/directadmin/data/templates/custom cp -f ../virtual_host* . perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' virtual_host*.conf perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' /etc/httpd/conf/httpd.conf perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' /etc/httpd/conf/extra/httpd-directories-*.conf echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue
…………………….
یک روش جدید کشف شده است که بسیار ساده تر از تغییر نحوه عملکرد suPhp می باشد.
تا زمانی که در DA کاملا پشتیبانی نشود، و اگر می خواهید آن را امتحان کنید (بدون نیاز به تغییرات بالا)، موارد زیر را انجام دهید:
- ویرایش کنید :
/etc/httpd/conf/extra/httpd-includes.conf
2. برای یوزر هایی که میخواهید این کار را برایشان انجام دهید دستور زیر را وارد کنید :
<Directory "/home/username"> <IfModule mod_suphp.c> suPHP_Engine On suPHP_UserGroup username username SetEnv PHP_INI_SCAN_DIR /usr/local/directadmin/data/users/username/php/ </IfModule> </Directory>
آپاچی را ری استارت کنید .