欢迎来到云服务器

Directadmin Linux面板

使用suPhp(custombuild)时,允许php脚本在〜username下工作

默认情况下,suPhp以“偏执”模式编译。 这意味着用户httpd.conf文件中的设置:

suPHP_UserGroup username username

将要求所有php文件归用户名或suPhp将引发“500内部服务器错误”。
 
这不适用于正常使用的域,因为每个域都有自己的VirtualHost,其中的suPHP_UserGroup使用正确的设置。

〜用户名(UserDir)方法将在偏执模式下失败,因为每个〜用户名路径没有虚拟主机,并且每个用户都没有suPHP_UserGroup设置,因此你会得到500错误。
 
解决方法是在“所有者”模式而不是“偏执狂”模式下编译suPhp。
为此,请运行这些命令。

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_UserGroup的所有引用都更改为#suPHP_UserGroup,基本上只是将它们注释掉。



发现了一种比改变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>

然后重新启动Apache。
腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号