操作环境:OS X 10.9.4
运行环境:自带的apache服务和php,版本分别是Apache/2.2.26 (Unix)和PHP 5.4.24 (cli)
项目根目录为:/Users/username/Sites/tu/
服务器根目录为:/Users/username/Sites/
我想读取/Users/username/Documents/icoder/backup文件夹下的文本文件,但使用file_exists函数却返回false,参数为文件的绝对路径。
读取项目根目录下的文件则返回true。
请问我遇到的问题是什么情况,有什么解决方案吗?
局部代码:
$path = "/Users/username/Documents/icoder/backup/test.txt"; if (!file_exists($path)) { echo 'File not found'; } echo '<br>';
要么是权限问题,要么就是设置了open_basedir
我对需要读取的文件执行了 chmod 777 命令,权限没有问题,刚刚查询了php.ini和httpd.conf,里面的open_basedir没有赋值,请问有没有问题,还有没有其他地方会使用到open_basedir?
光文件777权限是不够的,还需要php的执行帐号对该文件的所有父目录有读权限
######我这个是路径访问的问题吗,php只能访问项目内的文件吗,外部文件无法访问吗?######可以,用···返回到相同的根目录,再去访问你要访问的路径,不然就是以设置的根目录为主要根目录######我用以下路径访问过:
../../Documents/icoder/backup
结果是一样的,file_exists返回false
我不太明白你说的“以设置的根目录为主要根目录“是什么意思
具体应该怎么操作呢
######再取消一个…######前面再加个/,用绝对路径######具体不知道你的wwwroot的路径在哪,不好说。不过wwwroot和要访的不在wwwroot内,比如1/2/3,而1和wwwroot同级,那访问3文件,就是/···/1/2/3,这样,返回到有相同的根目录后再写要访问的路径######继续等,对这个问题感到非常棘手,如果php无法访问项目外的本地文件,我也就释然了,望高手解惑######不能访问项目外的本地文件是不可能的,session就得访问项目外得文件######要么是权限问题,要么就是设置了open_basedir
######要么是权限问题,要么就是设置了open_basedir
我对需要读取的文件执行了 chmod 777 命令,权限没有问题,刚刚查询了php.ini和httpd.conf,里面的open_basedir没有赋值,请问有没有问题,还有没有其他地方会使用到open_basedir?
######要么是权限问题,要么就是设置了open_basedir
我对需要读取的文件执行了 chmod 777 命令,权限没有问题,刚刚查询了php.ini和httpd.conf,里面的open_basedir没有赋值,请问有没有问题,还有没有其他地方会使用到open_basedir?
光文件777权限是不够的,还需要php的执行帐号对该文件的所有父目录有读权限
我该怎样得知php的执行帐号有没有该权限呢
######具体的代码如下:
if (!file_exists("/Users/username/Documents/icoder/backup/test.txt")) { echo 'File not found'; } echo '<br>'; readfile("/Users/username/Documents/icoder/backup/test.txt");
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。