php fopen ftp_get更改所有者/组 - 有时 - 为什么?

时间:2010-09-04 16:33:07

标签: php permissions ftp fopen

在我的php主机上,我有一个由cron作业运行的脚本,它打开/覆盖远程ftp服务器上的文件。它大部分时间都有效,但我发现当它最初创建文件时,所有者/组是“736/736”,但在某些时候,所有者和组更改为“99/99”。问题是我开始遇到权限问题 - 这是代码:

$local = fopen("/mypath/myfile.txt","w");
$result = ftp_fget($conn_id, $local,"remotepath/remotefile.txt", FTP_BINARY);
fclose($local);

我使用相同的代码来下载一堆文件。 它不会发生在所有文件中。除了“读取”类型fopen(“r”)之外,永远不会再次触摸此原始文件。

我不认为它是ftp_fget,因为我有一个不同的脚本,也是由cron运行,通过fopen“w”创建文本文件,而且其中一些文件也是所有者“99/99”。

有什么想法?这可能是isp方面的配置问题吗?如果是这样,我该告诉他们什么?当我告诉他们我的所有者/组是错的时,他们完全重置了我的整个ftp目录 - 权限,所有者等等,这很痛苦。

1 个答案:

答案 0 :(得分:1)

群组UID 99和所有者UID 99为Nobodyapache。对于文件系统创建的所有文件夹,这都是相同的。因此,当cron作业运行时,文件归apache所有。

<强>解决方案:

  1. 您可以要求您的网站托管服务商解决这些问题。
  2. 将要读/写的所有文件转换为777.如果文件是777,则通常不会尝试更改权限。但是,如果创建了新文件,它们将再次成为99的所有者。