我使用的是Ubuntu 11.04。 我的/ var / www有所有者和组shin(这是我的名字)
我使用了一个简单的fopen php
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Bobby Bopper\n";
fwrite($fh, $stringData);
$stringData = "Tracy Tanner\n";
fwrite($fh, $stringData);
fclose($fh);
但它会出现“无法打开文件”的错误。
它与www目录的所有者和组有关吗? 它应该是root吗?还是www-data?
如果所有者无事可做,那么代码会出错?
提前致谢。
答案 0 :(得分:1)
你应该给fopen一个完整的路径,不仅是一个文件名,并确保运行php代码的用户也有写权限(chmod到666)。
$myFile = "/var/www/testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
答案 1 :(得分:1)
fopen如果失败则返回警告,打开错误报告以获取有关错误的更多详细信息。在代码块之前添加以下行。
error_reporting(-1);
答案 2 :(得分:0)
假设您正在运行Web服务器(如Apache),则在'w'
模式下打开时,服务器进程的所有者必须具有写入文件的权限。这不一定基于所有权;它也可以通过模式完成。要了解文件模式,请运行:man chmod
。