Php 无法写入文件,即使is_writable返回true

Php 无法写入文件,即使is_writable返回true,php,file-io,permissions,fopen,Php,File Io,Permissions,Fopen,有人对此有什么想法吗?我用file\u exists()和是可写的()检查该文件,两者都返回true。为了安全起见,我将目录和文件设置为777,但是尝试fwrite()或file\u put\u contents()都不会导致文件发生更改 以下是相关代码: $filePath = dirname( __FILE__ ) . '/' . 'myfile.txt'; file_put_contents($filePath, "waffles are delicious"); 尝试删除结束php标记

有人对此有什么想法吗?我用
file\u exists()
是可写的()
检查该文件,两者都返回true。为了安全起见,我将目录和文件设置为
777
,但是尝试fwrite()或file\u put\u contents()都不会导致文件发生更改

以下是相关代码:

$filePath = dirname( __FILE__ ) . '/' . 'myfile.txt';
file_put_contents($filePath, "waffles are delicious");

尝试删除结束php标记,以确保这不是空白问题

您已经检查了文件的权限,但也查看了所有权

我经常看到这样的问题,即使用来自原始系统的uid/gid从归档文件中解包文件。通常情况下,当您上传并解压框架、CMS或论坛的zip或tar.gz安装档案,而不是等待通过FTP上传所有文件时,就会出现这种情况

要更改文件所有者,您需要在shell中执行
chown
命令,将其更改为帐户的用户名/组。您可能需要是root/su才能做到这一点

chown -R username:groupname *

-R
使它成为一个递归函数,适用于所有子目录中的所有文件。

它们是否会产生错误消息?@IgnacioVazquez Abrams无错误消息:-/file\u put\u contents()的返回值是多少现在可以工作了。老实说,我所做的只是在file\u put\u contents调用周围包装一个var\u dump()。不知道发生了什么on@JoeCortopassi那听起来像是输出缓冲区的问题。确保程序在文件关闭之前没有被终止。