0

我们的一个新客户托管在 Parallel Plesk 系统上,我需要将 Codeigniter 安装到我的项目的子域中。为此,我需要将文件放入 web 根目录之上的目录中,但唯一的问题是 Plesk 会阻止对除 /private、/httpdocs 和 /httpsdocs 之外的所有基本目录中的脚本的访问。我已将我的应用程序和系统文件上传到 /private,但不断收到以下错误:

警告:realpath() [function.realpath]:open_basedir 限制生效。文件(/var/www/vhosts/example.com/private/system)不在允许的路径内:/var/www/ 中的 (/var/www/vhosts/example.com/httpdocs:/tmp)第 143 行的 vhosts/example.com/httpdocs/sub-domains/dms/index.php

警告:is_dir() [function.is-dir]:open_basedir 限制生效。文件(/var/www/vhosts/example.com/private/system/)不在允许的路径中:/var/www 中的 (/var/www/vhosts/example.com/httpdocs:/tmp) /vhosts/example.com/httpdocs/sub-domains/dms/index.php 第 152 行 您的系统文件夹路径似乎设置不正确。请打开以下文件并更正:index.php

我无法上传到 /conf 文件,因此我无法在其中放置 vhost.conf 文件并使用该解决方法。有任何想法吗?

4

2 回答 2

1

我有你想要的解决方案。你应该改变你的配置文件。(application>config>config.php)

检查您的配置文件并更改sess_save_path会话变量下的值。

前:

config['sess_driver'] = 'files'; 
config['sess_cookie_name'] ='ci_session'; 
config['sess_expiration'] = 7200;
config['sess_save_path'] = NULL;
config['sess_match_ip'] = FALSE; 
config['sess_time_to_update'] = 300; 
config['sess_regenerate_destroy'] = FALSE;

后:

config['sess_driver'] = 'files'; 
config['sess_cookie_name'] ='ci_session'; 
config['sess_expiration'] = 7200; 
config['sess_save_path'] = '/tmp';
config['sess_match_ip'] = FALSE; 
config['sess_time_to_update'] = 300; 
config['sess_regenerate_destroy'] = FALSE;
于 2019-11-12T09:02:16.003 回答
0

该解决方案将取决于您的客户所托管的 Plesk 版本以及他们是否拥有共享主机帐户或 VPS/专用主机(即他们拥有 Plesk 的管理员访问权限)。

如果版本是 10.4 并且他们对 Plesk 具有管理员访问权限,或者他们在共享主机帐户中获得 PHP 设置管理权限 - 单击站点名称并打开“PHP 设置”选项卡,然后为“open_basedir”属性输入适当的值

对于早期版本或未授予 PHP 设置管理权限的情况,您必须向其托管服务提供商请求调整 vhost.conf。

或者,如果那是 Plesk 10+,您可以将站点放在自定义文件夹中。因此,您在“dir1/dir2”中创建了一个站点,并将其放置在应该位于 docroot 之上的“dir1/”文件中。

于 2012-05-03T13:10:27.110 回答