【问题标题】:realpath() open_basedir restriction in effect.realpath() open_basedir 限制生效。
【发布时间】:2012-05-02 23:25:38
【问题描述】:

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

错误

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

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

我的尝试

在 /var/www/vhosts/DOMAIN/conf/ 中,我使用 Virtuozzo 电源面板创建了文件 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

任何帮助将不胜感激。

【问题讨论】:

    标签: zend-framework vps open-basedir


    【解决方案1】:

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

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

    您还需要将DocumentRoot 设置为:

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

    虽然。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题并在没有将 open_basedir 设置为 none 的情况下解决了它。 您可以通过在 Linux 中使用“:”和“;”将多个路径添加到 open_basedir在 Windows 中。因此,如果您的警告中提到“realpath”,请将“realpath”添加到您的 open_basedir 设置或“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

      卢锡安

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-18
        • 1970-01-01
        • 2013-01-06
        • 2016-03-16
        • 1970-01-01
        • 2014-02-21
        • 2014-09-27
        • 2011-03-16
        相关资源
        最近更新 更多