解决方案 »

  1.   

    先确认file_get_contents()获取的数据是否存在,数据类型是否合法。
      

  2.   

    这个已经确认数据是存在的,数据就是字符串,即使我用fopen 和fwrite也是存在问题。
      

  3.   

    估计是权限不够
    echo substr(sprintf('%o', fileperms('你的目录')), -4); //看看是什么结果
      

  4.   

    要求能写入的话 文件所在的目录也是需要有写的权限的
    比如 /home/centos/123.txt
    目录home、centos也都是需要写的权限的不只是单单123.txt需要写权限
      

  5.   

    file_put_contents 失败时会有明确的错误信息输出
    请贴出
      

  6.   

    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 
      

  7.   

    提示很清楚了,
    Permission denied 
    拒绝访问
      

  8.   

    你是要把文件写到 /usr/local/www/wxtest/txt 目录中
    请检查目录存在且可写
      

  9.   

    目录的权限已经设置成了777权限。
    并且防止上级目录权限不足,我把/usr/local/www/wxtest/txt所有目录都设置成了755,都包含写权限,还是不行。
      

  10.   

    1. 755权限指的是 rwxr-xr-x, 同组和其他用户是没有写权限的。 777才是全部用户拥有所有权限。2. 建议使用绝对路径,写文件前在脚本内判断路径是否存在,不存在则先创建路径(目录)再写文件,这个是血淋淋的教训。
      

  11.   

    已经设置成了777是不是apache里面还有需要设置的,或是系统里面那个地方还需要设置?
      

  12.   


    组外用户不就是other组吗?你指的是什么?
      

  13.   

    怎么解决的 可否分享下默认下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