Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于非激励文件,php文件不可写_Php_Apache_Apache2_File Permissions_Fopen - Fatal编程技术网

对于非激励文件,php文件不可写

对于非激励文件,php文件不可写,php,apache,apache2,file-permissions,fopen,Php,Apache,Apache2,File Permissions,Fopen,我有以下代码要写入文件 $ics_file = "/var/www/Untis/ICS/$ID.ics"; if (is_writable($ics_file)) { if (!$handle = fopen($ics_file, 'c')) { echo "Cannot open file ($ics_file)\n\n"; exit; } if (fwrite($handle, $ics_contents) === FALSE) { echo "

我有以下代码要写入文件

$ics_file   = "/var/www/Untis/ICS/$ID.ics"; 
if (is_writable($ics_file)) {
  if (!$handle = fopen($ics_file, 'c')) {
     echo "Cannot open file ($ics_file)\n\n";
     exit;
  }
  if (fwrite($handle, $ics_contents) === FALSE) {
    echo "Cannot write to file ($ics_file)\n\n";
    exit;
  }
  fclose($handle);
} else {
  echo "The file <b>$ics_file</b> is not writable\n\n";
}
但是我仍然无法在那里书写。我得到的错误是:

文件/var/www/Untis/ICS/CTE152B.ICS不可写


我目前不知道为什么它不适用于新文件,如果我将目录修改为777,php应该能够在那里写入,对吗?

显然,请检查
/var/www/Untis/ICS/
的权限。除此之外:您永远不需要
0777
。在检查是否可写之前是否存在文件CTE152B.ics?如果没有文件,它将失败。如果您只想检查目录,您可以省略文件名。@JasonK Damm,很好,我检查的是文件而不是目录。谢谢你应该扔掉所有这些无用的东西,别管这些条件。只需使用fopen和fwrite。如果出现真正的错误,PHP将向您提供准确而全面的错误消息,而不是您不准确的自制标记。显然,请检查
/var/www/Untis/ICS/
的权限。除此之外:您永远不需要
0777
。在检查是否可写之前是否存在文件CTE152B.ics?如果没有文件,它将失败。如果您只想检查目录,您可以省略文件名。@JasonK Damm,很好,我检查的是文件而不是目录。谢谢你应该扔掉所有这些无用的东西,别管这些条件。只需使用fopen和fwrite。如果出现真正的错误,PHP会给你一个准确而全面的错误信息,而不是你不准确的自制评论
pi@raspberrypi /var/www/Untis $ ls -all
total 44
drwxrwxrwx 2 pi   www-data 4096 Sep 27 20:49 ICS