Linux - PHP mkdir 创建目录,但没有写入权限


Linux - PHP mkdir creates directory, but no write permission?

我通过命令行运行一个php文件,里面有以下代码:

if(!is_dir($path)) {
    mkdir($path, 0666, true);
}

此代码不会引发任何错误,并且会按预期创建文件夹。

如果我之后这样做:

file_put_contents("Some data", $path . "filename.txt");

我收到"无法打开流:权限被拒绝"异常。

即使我做

chmod($path, 0777);

在 PHP 代码中的 mkdir 之后,我收到错误。

如果我手动创建目录并通过 linux 命令将其设置为 777,则每个目录都可以正常工作。为什么呢?

您可以在创建目录时设置权限

mkdir($path, 0777, true)

您还需要将file_put_contents的语法更改为

file_put_contents($path . "/filename.txt", "Some Data");