我有几个电话到is_dir
在页面上。 他们一直工作没有问题。
前几天,托管公司升级PHP 5.2至5.3。 从那时起,我对所有呼叫is_dir
导致以下错误(消息):
Warning: is_dir(): open_basedir restriction in effect.
File(/home/virtual/domain.com/public_html/galleries/img/002.JPG/)
is not within the allowed path(s):
(/home/virtual/domain.com:/home/virtual/_tmp)
in /home/virtual/domain.com/public_html/index.php on line 201
这让我为难。
显然,根据该错误消息(和php_info
以及),目录/home/virtual/domain.com
(没有尾随斜线,所以包括子目录)被包括/在启用open_basedir
,并且该文件is_dir
试图遍历通过都位于该文件夹下的子文件夹。 那么,为什么他们不在允许的路径内,然后呢? 显然,他们是!
奇怪的是, 出现此错误,只显示了当is_dir
返回false,即当文件不是文件夹,而是一个普通的文件。 似乎通过目录遍历所有权利,没有引发错误。
类似的问题,以前贴在这里: open_basedir的限制奇怪 (没有找到解决方案)。
有人有想法么?
(注:更改PHP的设置是不是一种选择,因为这是一个共享的主机,我没有任何管理权限)