我试图在我的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
非常感谢任何帮助。
答案 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
卢西恩