Home  >  Article  >  Backend Development  >  为什么在服务器上php里执行file_put_contents创建文件回到是false呢,文件目录已经设置为777的权限了,不解

为什么在服务器上php里执行file_put_contents创建文件回到是false呢,文件目录已经设置为777的权限了,不解

WBOY
WBOYOriginal
2016-06-13 11:50:42898browse

为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解
想用file_get_contents读取网络上的图片文件并由file_put_contesnts写入到服务器本地,file_get_contesnts执行没问题,可以读取信息,然后将读出的数据$data执行:
var_dump(file_put_contents($local_file_position, $data));在测试中会显示var_dump出的信息,但最后file_put_contents返回是false,不知道为什么,在网上搜说是aparche没有写权限,是这样的吗?如果是,如何设置呢?

环境:CentOS 6.5 + MySQL5.5.35 + tomcat7.0.47

------解决方案--------------------
用的是绝对路径还是相对路径?
------解决方案--------------------
先确认file_get_contents()获取的数据是否存在,数据类型是否合法。
------解决方案--------------------
估计是权限不够
echo substr(sprintf('%o', fileperms('你的目录')), -4); //看看是什么结果
------解决方案--------------------

引用:
绝对路径和相对路径是一样的

要求能写入的话 文件所在的目录也是需要有写的权限的
比如 /home/centos/123.txt
目录home、centos也都是需要写的权限的不只是单单123.txt需要写权限
------解决方案--------------------
file_put_contents 失败时会有明确的错误信息输出
请贴出
------解决方案--------------------
提示很清楚了,
Permission denied 
拒绝访问
------解决方案--------------------
你是要把文件写到 /usr/local/www/wxtest/txt 目录中
请检查目录存在且可写
------解决方案--------------------
1. 755权限指的是 rwxr-xr-x, 同组和其他用户是没有写权限的。 777才是全部用户拥有所有权限。

2. 建议使用绝对路径,写文件前在脚本内判断路径是否存在,不存在则先创建路径(目录)再写文件,这个是血淋淋的教训。
------解决方案--------------------
把/usr/local/www/wxtest/txt设成777
------解决方案--------------------
确定是对组外用户的权限是777?
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:日期函数解决办法Next article:asp.net 转 php解决思路