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

步履人生 2014-03-04 11:59:38
想用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
...全文
24005 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
cz447307145 2015-07-17
  • 打赏
  • 举报
回复
估计服务器存储空间满了,df -h查下
步履人生 2014-03-13
  • 打赏
  • 举报
回复
引用 22 楼 microlab2009 的回复:
[quote=引用 21 楼 afxtian 的回复:] 呵呵,解决了,结贴,谢谢各位的帮忙!
怎么解决的 可否分享下[/quote] 默认下selinux是开启的 查看SELinux状态: 1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: enabled 2、getenforce ##也可以用这个命令检查 关闭SELinux: 1、临时关闭(不用重启机器): setenforce 0 ##设置SELinux 成为permissive模式 ##setenforce 1 设置SELinux 成为enforcing模式 2、修改配置文件需要重启机器: 修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可 另外,如果以上还是不能解决的话要设置一下目录的权限策略 chcon -R -t httpd_sys_content_t /home/html
嘻哈大咖秀 2014-03-13
  • 打赏
  • 举报
回复
引用 21 楼 afxtian 的回复:
呵呵,解决了,结贴,谢谢各位的帮忙!
怎么解决的 可否分享下
步履人生 2014-03-13
  • 打赏
  • 举报
回复
呵呵,解决了,结贴,谢谢各位的帮忙!
步履人生 2014-03-12
  • 打赏
  • 举报
回复
引用 19 楼 u010541899 的回复:
确定是对组外用户的权限是777?
组外用户不就是other组吗?你指的是什么?
PhpEr_贵 2014-03-11
  • 打赏
  • 举报
回复
确定是对组外用户的权限是777?
步履人生 2014-03-11
  • 打赏
  • 举报
回复
引用 17 楼 get_current_user 的回复:
把/usr/local/www/wxtest/txt设成777
引用 17 楼 get_current_user 的回复:
把/usr/local/www/wxtest/txt设成777
已经设置成了777 是不是apache里面还有需要设置的,或是系统里面那个地方还需要设置?
邪恶泡泡 2014-03-06
  • 打赏
  • 举报
回复
把/usr/local/www/wxtest/txt设成777
abcfyk 2014-03-05
  • 打赏
  • 举报
回复
1. 755权限指的是 rwxr-xr-x, 同组和其他用户是没有写权限的。 777才是全部用户拥有所有权限。 2. 建议使用绝对路径,写文件前在脚本内判断路径是否存在,不存在则先创建路径(目录)再写文件,这个是血淋淋的教训。
步履人生 2014-03-05
  • 打赏
  • 举报
回复
引用 15 楼 abcfyk 的回复:
1. 755权限指的是 rwxr-xr-x, 同组和其他用户是没有写权限的。 777才是全部用户拥有所有权限。 2. 建议使用绝对路径,写文件前在脚本内判断路径是否存在,不存在则先创建路径(目录)再写文件,这个是血淋淋的教训。
权限修改为 777 也不行啊。路径肯定是存在的。
Hx_Moon_ 2014-03-04
  • 打赏
  • 举报
回复
先确认file_get_contents()获取的数据是否存在,数据类型是否合法。
步履人生 2014-03-04
  • 打赏
  • 举报
回复
绝对路径和相对路径是一样的
嘻哈大咖秀 2014-03-04
  • 打赏
  • 举报
回复
用的是绝对路径还是相对路径?
步履人生 2014-03-04
  • 打赏
  • 举报
回复
补充一下,要写入的文件所在路径的权限已经设置为777
步履人生 2014-03-04
  • 打赏
  • 举报
回复
目录的权限已经设置成了777权限。 并且防止上级目录权限不足,我把/usr/local/www/wxtest/txt所有目录都设置成了755,都包含写权限,还是不行。
xuzuning 2014-03-04
  • 打赏
  • 举报
回复
你是要把文件写到 /usr/local/www/wxtest/txt 目录中 请检查目录存在且可写
一起混吧 2014-03-04
  • 打赏
  • 举报
回复
提示很清楚了, Permission denied 拒绝访问
步履人生 2014-03-04
  • 打赏
  • 举报
回复
php文件t.php放在目录(绝对路径)/usr/local/www/wxtest <?php header("Content-type: text/html; charset=utf-8"); $fp=fopen('txt/test.txt', 'wb'); if($fp) fwrite($fp, "TESTSETST"); else echo "fail to create file. <br/>"; fclose($fp); ?> 在windows浏览器地址直接输入该php文件 执行结果如下: Warning: fopen(txt/test.txt): failed to open stream: Permission denied in /usr/local/www/wxtest/t.php on line 87 fail to create file. Warning: fclose() expects parameter 1 to be resource, boolean given in /usr/local/www/wxtest/t.php on line 90
xuzuning 2014-03-04
  • 打赏
  • 举报
回复
file_put_contents 失败时会有明确的错误信息输出 请贴出
步履人生 2014-03-04
  • 打赏
  • 举报
回复
引用 6 楼 jordan102 的回复:
估计是权限不够 echo substr(sprintf('%o', fileperms('你的目录')), -4); //看看是什么结果
我修改成了777,执行返回: 0777
加载更多回复(4)

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧