PHP版本:5.1.6:无法写入文件

PHP版本:5.1.6:无法写入文件,php,fopen,fwrite,Php,Fopen,Fwrite,我正在使用5.1.6版,发现了一个奇怪的问题。我无法从脚本创建和写入文件,而如果我显式创建文件,然后运行脚本,它会写入数据 我是不是漏掉了什么明显的东西 我正在尝试的测试代码是: $message = "Test"; $myFile = "testFile.txt"; if (file_exists($myFile)) { $fh = fopen($myFile, 'a'); fwrite($fh, $message."\n"); } else { chmod("/path/to/d

我正在使用5.1.6版,发现了一个奇怪的问题。我无法从脚本创建和写入文件,而如果我显式创建文件,然后运行脚本,它会写入数据

我是不是漏掉了什么明显的东西

我正在尝试的测试代码是:

$message = "Test";
$myFile = "testFile.txt";
if (file_exists($myFile)) {
  $fh = fopen($myFile, 'a');
  fwrite($fh, $message."\n");
} else {
  chmod("/path/to/dir/*", 0755); //updated code
  $fh = fopen($myFile, 'w')  or die("Cannot open file \"$myFile\"...\n");
  fwrite($fh, $message) ;
}
fclose($fh);
结论:
谢谢大家的回复。这是一个许可问题。我更改了目录路径,它可以工作:)

我遇到了一个类似的问题,通过将文件夹的所有者更改为apache用户解决了这个问题。这将为您的php脚本提供创建文件和写入该文件夹中的文件所需的权限。
我猜您将无法从php脚本中下载文件夹,只能通过服务器访问(ssh或ftp)。至少,这是我必须走的道路。

我遇到了一个类似的问题,通过将文件夹所有者更改为apache用户解决了这个问题。这将为您的php脚本提供创建文件和写入该文件夹中的文件所需的权限。
我猜您将无法从php脚本中下载文件夹,只能通过服务器访问(ssh或ftp)。至少,这是我必须走的道路。

您的代码很好。仅chmod所在的行不是必需的

注释掉
chmod(“/path/to/dir/*”,0755)这将chmod set文件夹中的所有文件

请参阅上的PHP手册


你的代码很好。仅chmod所在的行不是必需的

注释掉
chmod(“/path/to/dir/*”,0755)这将chmod set文件夹中的所有文件

请参阅上的PHP手册


权限问题?使用php.net/manual/fr/function.chmod.php“>chmodIt是一个文件和目录权限问题,与这个应该更新的古老php版本无关!@GhilasBELHADJ:试图更改权限,但仍然面临相同的问题(上面编辑的代码)@iDev据我所知,你的代码没有任何问题。正如其他人所说,你有一个“路径”问题和/或“权限”。你为什么要用这个
chmod(“/path/to/dir/*”,0755);
加一个星号?你在尝试chmod“一切”?@iDev只是为了测试的目的,在没有
chmod的情况下尝试你的代码(“/path/to/dir/*”,0755);
权限问题?使用php.net/manual/fr/function.chmod.php“>chmodIt是一个文件和目录权限问题,与这个应该更新的古老php版本无关@GhilasBELHADJ:试图更改权限,但仍然面临相同的问题(上面编辑的代码)@iDev据我所知,您的代码没有问题。正如其他人所说,您有“路径”问题和/或“权限”。为什么要使用这个
chmod(“/path/to/dir/*”,0755)有星星吗?您正在尝试chmod“一切”?@iDev仅用于测试目的,请在不使用
chmod(“/path/to/dir/*”,0755)的情况下尝试您的代码
$message = "Test";
$myFile = "testFile.txt";
if (file_exists($myFile)) {
  $fh = fopen($myFile, 'a');
  fwrite($fh, $message."\n");
} else {

//chmod("/path/to/dir/*", 0755);
  $fh = fopen($myFile, 'w')  or die("Cannot open file \"$myFile\"...\n");
  fwrite($fh, $message) ;
}
fclose($fh);