realpath()open_basedir限制生效。

时间:2012-04-21 19:09:34

标签: zend-framework vps open-basedir

我试图在我的VPS上启动并运行我的Zend Framework应用程序。我收到此错误:

错误

警告:realpath()[function.realpath]:open_basedir限制生效。

显然这在Plesk的默认限制中很常见,所以我确定你们中的一些人遇到了同样的问题。

我尝试了什么

在/ var / www / vhosts / DOMAIN / conf /我使用Virtuozzo Power Panel创建了文件vhost.conf。下面是我放在vhost.conf中的代码:

尝试1

<Directory /var/www/vhosts/DOMAIN/public>
<IfModule sapi_apache2.c>
        php_admin_value open_basedir none
</IfModule>
<IfModule mod_php5.c>
        php_admin_value open_basedir none
</IfModule>
</Directory>

尝试2

<Directory /var/www/vhosts/DOMAIN/public>
    php_admin_value open_basedir none
</Directory>

我也重启了httpd服务。

文件夹结构

我的文件夹结构如下:

/var/www/vhosts/DOMAIN/application
/var/www/vhosts/DOMAIN/library
/var/www/vhosts/DOMAIN/public

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我认为您需要为整个项目设置open_basedir

<Directory /var/www/vhosts/DOMAIN>
    php_admin_value open_basedir none
</Directory>

您还需要将DocumentRoot设置为:

DocumentRoot "/var/www/vhosts/DOMAIN/public"

虽然。

答案 1 :(得分:1)

我遇到了同样的问题&amp;解决了它,没有将open_basedir设置为none。 您可以通过在Linux中用“:”分隔它们来添加open_basedir的多个路径,并且“;”在Windows中。因此,如果在警告中提到“realpath”,请在open_basedir设置或“realpath”的父目录中添加“realpath”。例如:

php_admin_value open_basedir "/srv/www/vhosts/domain.com/httpdocs:/tmp:/usr/share/php5/"

现在你的open_basedir配置了3条路径:

/srv/www/vhosts/domain.com/httpdocs
/tmp
/usr/share/php5

在我的情况下,zend在没有警告的情况下在我的系统上运行时需要上面3的最后一条路径。

另请注意,以“/”结尾路径之间存在差异! 没有“/”,所有子文件夹都将包含在open_basedir中。 看看这里:http://www.php.net/manual/en/ini.core.php#ini.open-basedir

卢西恩