13

我正在使用 fopen 创建一个新文件。

$filename = 'user_data/10.xml';
$openhandle = fopen($filename, 'w+');

然后我检查文件是否已使用:file_exists()函数创建。

问题是:文件是由某个所有者创建的,可能是文件夹名称,但不是我。文件的权限也只有readable by the owner. 而且由于我不是所有者,因此我无法读取文件或更改权限。

但是如果尝试使用以下方法更改它:

chown($filename, 'myusername');
chmod($filename, 777);

我尝试使用终端更改文件所有者和权限sudo。那工作正常。所以我也尝试使用上面的函数,shell_exec()让它在 root 中运行。

但没有运气。

虽然,我对文件权限编号没有太多经验,但 chown 命令也不起作用。

那么我应该如何更改文件的所有者和权限,以便我是所有者并且它可以被我的其他 PHP 脚本读写?

4

1 回答 1

21

您应该能够仅使用以下行对其进行 chmod:

chmod($filename, 0777);

注意 777 前面的 0。

在 chmod'ed 之前也不要更改所有权

于 2011-12-28T20:21:20.303 回答