آخرین اطلاع از وضعیت اینترنت و سرویس های وب داده در شرایط جنگ

Allow php scripts to work under ~username when using suPhp (custombuild)

 

به طور پیش فرض، 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 کاملا پشتیبانی نشود، و اگر می خواهید آن را امتحان کنید (بدون نیاز به تغییرات بالا)، موارد زیر را انجام دهید:

  1. ویرایش کنید :
/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>

آپاچی را ری استارت کنید .