如何在Plesk中为所有域添加open_basedir的路径?
正如标题所说,如何在Plesk中为所有域添加open_basedir的路径?如何在Plesk中为所有域添加open_basedir的路径?
我必须为所有域的open_basedir的值从:
{DOCROOT}/:/tmp/
到:
{DOCROOT}/:/tmp/:/var/www/vhosts/{DOMAIN?}/
我知道做到这一点,我只是不知道变量是什么{DOCROOT}的父项
我不知道Plesk 10.3,但在Plesk 10.4中有{WEBSPACEROOT}暴露给/ var/www/vhosts /%domain-name%/。因此,您只需在服务计划的PHP设置中将“{DOCROOT} /:/ tmp /”替换为“{WEBSPACEROOT} /:/ tmp /”。
这是Plesk 11.0中的默认设置。
有关的Plesk 10.0,为案件时PHP可以作为Apache模块:
mkdir /usr/local/psa/admin/conf/templates/custom/service/
cp /usr/local/psa/admin/conf/templates/default/service/php.php /usr/local/psa/admin/conf/templates/custom/service/
在/usr/local/psa/admin/conf/templates/custom/service/php.php替换字符串
echo "php_admin_value open_basedir {$OPT['dir']}/:/tmp/\n";
到
echo "php_admin_value open_basedir " . str_replace('/httpdocs', '', $OPT['dir']) . "/:/tmp/\n";
并运行:
/usr/local/psa/admin/bin/httpdmng --reconfigure-all # to apply new configuration for all domains
但是对于CGI和FastCGI有需要改变/var/www/vhosts/domain-name/etc/php.ini文件,我不知道如何处理它。
我用过的奥列格对php.php模板解决方案,在11版Plesk,只是改变了下面的代码:
echo $OPT['settings'];
到
echo str_replace(':/tmp/', ':/tmp/:/php/includes/', $OPT['settings']);
这不是一个非常强大的解决方案,可以提供了比需要更多的选项替换,但在常见情况下可用(将/ php/includes /目录添加到open_basedir选项中)。 通常这些更改可以通过plesk服务计划更正完成,但是当您的域名具有过多的自定义服务计划时 - 这可能会改变所有域设置。
Plesk 11用户请在这里找到它:http://download1.parallels.com/Plesk/PP11/11.0/Doc/en-US /online/plesk-linux-advanced-administration-guide/index.htm?fileName=69310.htm – Dichev 2014-09-12 16:21:07
是的 - 这是正确的,我终于在plesk论坛上得到了答案。不幸的是我在第10版。[其他帖子是“不可能”] – 2013-03-26 13:04:06