open_basedir未正确设置

时间:2013-03-12 18:15:11

标签: php apache codeigniter mediatemple open-basedir

这可能对服务器有点重要,但我希望有人能提供帮助。

我有一个PHP CodeIgniter应用程序,我试图设置在服务器(或本地计算机)上设置配置文件(如application / config / database.php),因此它们不在github中(所以数据库密码没有被跟踪)它使一切变得更容易。

所以我让它在本地主机上完美运行,基本上它可以追溯到:

/path_before_httpdocs/config/development/config.php

但是在服务器上我设置了文件夹结构,但是我收到了这个错误:

Warning: require(): open_basedir restriction in effect. 
File(/var/www/vhosts/mysite.com/subdomains/staging/config/staging/config.php) is not within the allowed path(s):
(/var/www/vhosts/mysite.com/subdomains/staging/httpdocs/:/tmp/:/var/www/vhosts/mysite.com/subdomains/staging/httpsdocs/:/tmp/) 
in /home/mysite/staging/deploy/releases/20130312155222/httpdocs/application/config/config.php on line 12

所以我做的第一件事就是去php.ini文件,看看它是什么。它没有设置,所以我将它设置为php.ini然后重新启动httpd。所以现在如果我运行phpinfo(),我会看到:

Directive    |        Local Value                                                                                                           |        Master Value
open_basedir | /var/www/vhosts/mysite.com/subdomains/staging/httpdocs/:/tmp/:/var/www/vhosts/mysite.com/subdomains/staging/httpsdocs/:/tmp/ | /var/www/vhosts/mysite.com/subdomains/staging/config/staging/:/tmp/

我仍然得到错误。所以我接下来要做的就是尝试

ini_set('open_basedir', '/var/www/vhosts/mysite.com/subdomains/staging/config/staging/:/tmp/');
这也没用。接下来的事情是我刚刚回复了ini_get('open_basedir')并且返回了

/var/www/vhosts/mysite.com/subdomains/staging/httpdocs/:/tmp/:/var/www/vhosts/mysite.com/subdomains/staging/httpsdocs/:/tmp/

所以看起来它忽略了我的php.ini

我试图关注this article(我在mediatemple上的DV 4上托管)。 Mediatemple支持表示他们无法帮助我。这里有没有人有任何想法?如果需要,我还可以提供更多信息。

1 个答案:

答案 0 :(得分:0)

我终于得到了答案。在Plesk中,我能够设置php设置并定义open_basedir。