首页 >后端开发 >php教程 >PHP不能识别“./”和“/”相对路径,这是哪里配置不对?

PHP不能识别“./”和“/”相对路径,这是哪里配置不对?

WBOY
WBOY原创
2016-06-20 12:34:201755浏览

PHP版本是5.3.29,这个程序之前在别的服务器上是正常的,现在移到新的服务器上,凡事有相对路径“./”和“../”的,都不能识别,提示类似下面的:
Warning: include_once(../../../../../Lang/zh-cn/calendar.php): failed to open stream: No such file or directory in D:\wwwroot\xingxing\web\admin\Tpl\default\Common\js\calendar\calendar.php on line 9

Warning: include_once(): Failed opening '../../../../../Lang/zh-cn/calendar.php' for inclusion (include_path='.;C:\php\pear') in D:\wwwroot\xingxing\web\admin\Tpl\default\Common\js\calendar\calendar.php on line 9

Notice: Undefined variable: _LANG in D:\wwwroot\xingxing\web\admin\Tpl\default\Common\js\calendar\calendar.php on line 11

Warning: Invalid argument supplied for foreach() in D:\wwwroot\xingxing\web\admin\Tpl\default\Common\js\calendar\calendar.php on line 11

文件路径是没有问题的,因为在别的服务器上都是正常的。如果把“./”改成dirname(__FILE__),程序也是可以正常运行的。但就是不能识别相对路径。请问这种情况是PHP哪里配置不对的吗,还是IIS配置不对。

因为程序是别人做的,而且很多地方都使用了相对路径,所以很难一个个文件去把路径都改成绝对路径。

下面网盘链接是phpinfo()的代码:
https://pan.baidu.com/s/1qWZHaKs


回复讨论(解决方案)

<?phpecho getcwd();echo dirname(__FILE__);?>

上面的代码输出的是:
C:\php
D:\wwwroot\xingxing\web
补充说明:在网站根目录下输出echo getcwd();显示出来的是:C:\php,而echo dirname(__FILE__);打印出来的是:D:\wwwroot\xingxing\web,而D:\wwwroot\xingxing\web

猜你就是用的 IIS 
你需要在管理器的网站属性选项卡中 勾选 启用父路径

猜你就是用的 IIS 
你需要在管理器的网站属性选项卡中 勾选 启用父路径



谢谢版主,以前IIS6的时候我记得有这个设置的,但是现在用的是IIS7,没找到这个选项,网上找到的也都是ASP设置父路径的方法
我是用的IIS7,win2008的,对服务器配置不懂,具体在哪里设置呢

http://www.softbar.com/blog/post/187.html

自己找找看吧,我几年前弄过。现在也记不清了

http://www.softbar.com/blog/post/187.html
自己找找看吧,我几年前弄过。现在也记不清了



这个是ASP的设置呢,PHP的没见有,还是IIS7就没有这玩意了

我猜你是权限不足的原因  比如 你PHP 网站绑定的是wwww/csdn  你来宾权限只到csdn 到不了wwww从而导致的
你试试给wwww 权限放大

你做了就知道!

问题解决了,你们两位说的问题都不是。我在网上下载一个同版本的PHP,然后把里面的php.ini替换了服务器上的php.ini就可以了。也不知道是php.ini里面哪里设置不对的。这个是阿里云的主机,PHP不知道是原来自带的还是后面装上的,反正因为这个设置就有各种各样的问题,连getcwd();都获取不到当前目录,获取到的是c:\php目录

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn