Heim  >  Artikel  >  Backend-Entwicklung  >  PHP不能识别“./”和“/”相对路径,这是哪里配置不对?

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

WBOY
WBOYOriginal
2016-06-20 12:34:201711Durchsuche

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目录

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn