PHP fopen()函数不创建文件

PHP fopen()函数不创建文件,php,Php,我正在尝试使用以下代码在我的PHP应用程序中创建一个文件: $file=@fopen(数据::$file_路径,'w')//我也试过用“x” 如果(!$file) { 新ErrorReporter(“错误3”); 返回; } 它始终显示错误3文本 PHP脚本有chmod 777,我试图创建$FILE\u路径: /var/www/data.json /var/data.json /root/data/data.json /var/test/data.json 但以下各项都不起作用,因此永远不

我正在尝试使用以下代码在我的PHP应用程序中创建一个文件:

$file=@fopen(数据::$file_路径,'w')//我也试过用“x”
如果(!$file)
{
新ErrorReporter(“错误3”);
返回;
}
它始终显示错误3文本

PHP脚本有chmod 777,我试图创建$FILE\u路径:

  • /var/www/data.json
  • /var/data.json
  • /root/data/data.json
  • /var/test/data.json
但以下各项都不起作用,因此永远不会创建该文件

我尝试手动创建文件,并使用以下函数对其进行调试:

private function debug()
{
$file=数据::$file\u路径;
错误报告(E_全部);
ini设置(“显示错误”,真);
回显“phpversion:”,phpversion(),“\n”;
echo“uname:”,php_uname(“sr”),“\n”;//操作系统的名称/版本
//回显'sapi:',php_sapi(),“\n”;
echo$file,file_exists($file)?'exists':'notexists',“\n”;
echo$file,是否可读($file)?“是否可读”:“不可读”,“\n”;
echo$file,是否可写($file)?“是否可写”:“不可写”,“\n”;
$fp=fopen($file,'w');
如果(!$fp){
回显“最后一个错误:”;
var_dump(错误_get_last());
}
否则{
回显“ok.\n”;
}
死亡(“完成”);
}
文件:

  • 存在
  • 可读
  • 不可写
调试函数中出现的错误是:
无法打开流:第108行的/path/to/the/文件中的权限被拒绝

第108行内容:

$fp=fopen($file,'w')

但正如我前面所说,脚本的chmod是777,$FILE_PATH FILE是664


有人能帮我解决这个问题吗?

经过几次尝试,我终于找到了一个解决方案:

我必须更改目标文件夹的chmod。我做了777,但你可以找到更安全的chmods


作为总结,您需要更改PHP脚本和目标文件夹的权限。

经过一些尝试,我终于找到了一个解决方案:

我必须更改目标文件夹的chmod。我做了777,但你可以找到更安全的chmods


因此,作为总结-您需要更改PHP脚本和目标文件夹的权限。

不允许您在这些目录中写入内容。。。这一点再明显不过了,或者可以更好地解释为:没有人可以为您“修复”,请使用允许您写入的另一个目录。即使在/var/www/data.json中,脚本文件的权限也无关紧要。重要的是您试图写入的文件夹的权限,以及脚本运行的“用户”。不允许您在这些目录中写入。。。这一点再明显不过了,或者可以更好地解释为:没有人可以为您“修复”,请使用允许您写入的另一个目录。即使在/var/www/data.json中,脚本文件的权限也无关紧要。重要的是您试图写入的文件夹的权限,以及脚本运行的“用户”。