DirectAdmin 主机开通后有个临时访问地址:http://ServerIP/~username/


By default, suPhp is compiled in "paranoid" mode. This means that the settings in the user httpd.conf files:
“suPHP_UserGroup username username
will require all php files to be owned by username or suPhp will throw a "500 Internal Server Error".

This does not apply to domains, when used normally, because each domain has it's own VirtualHost with the suPHP_UserGroup inside it using the correct settings.

The ~username (UserDir) method will fail in paranoid mode, because there is not a virtualhost for each ~username path, and no suPHP_UserGroup settings for each user, hence you get the 500 error.


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

Which will change all references of suPHP_UserGroup to #suPHP_UserGroup, basically, just commenting them out.




<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/

重启apache服务:service httpd restart


标签: DirectAdmin