今天遇到一个奇怪的问题,在IIS环境下,is_dir()函数返回值不正确,造成网站根本无法打开。
如:is_dir('./path'); path目录实际是存在的,但是返回值却是 false;
百思不得其解,百度很多资料均无效。经过不断探索,问题得以解决:
这是目录权限造成,我们在IIS环境,通常要设置目录权限,比如目前的目录结构是这样的
D:/pathA/pathB/
假定网站的主目录的路径指向pathB, 用于匿名访问网站的用户为userA, 我们不仅要给pathB赋予userA合适的权限,还要给他的上级目录,也就是pathA赋予userA合适的权限(至少是可列举的权限),经过此设置后,所有的php目录操作函数均能正常工作。
涉及到路径的函数,比如 include require 等等同样符合上述结论。