Linux-PHPMKDIR创建目录,但没有写权限?
我通过命令行运行一个php文件,其中包含以下代码:Linux-PHPMKDIR创建目录,但没有写权限?,php,linux,Php,Linux,我通过命令行运行一个php文件,其中包含以下代码: if(!is_dir($path)) { mkdir($path, 0666, true); } 此代码未引发任何错误,文件夹按预期创建 如果我事后这样做: file_put_contents("Some data", $path . "filename.txt"); 我得到一个“无法打开流:权限被拒绝”异常 即使我做了一件事 chmod($path, 0777); 在PHP代码中输入mkdir之后,我得到了错误 如果我手动创建目
if(!is_dir($path)) {
mkdir($path, 0666, true);
}
此代码未引发任何错误,文件夹按预期创建
如果我事后这样做:
file_put_contents("Some data", $path . "filename.txt");
我得到一个“无法打开流:权限被拒绝”异常
即使我做了一件事
chmod($path, 0777);
在PHP代码中输入mkdir之后,我得到了错误
如果我手动创建目录并通过linux命令将其设置为777,则everythig工作正常。为什么会这样?您可以在创建目录时设置权限
mkdir($path,0777,true)
此外,还需要更改文件内容的语法
文件内容($path./filename.txt”,“一些数据”)代码>你已经得到了答案,现在就去问他们。我会这么做的!我将权限设置为0666,这足以进行写入。将所有设置为777是一种糟糕的做法,在我的情况下没有必要。设置777是个坏主意,但要做到这一点,你至少需要设置这些权限0744@leftjustified,如果不授予目录执行权限,则无法在其中执行任何操作(如创建文件)。“只写”允许您删除文件,因为您不需要访问目录中的文件,但不需要创建文件,因为您总是获得文件描述符,而您无法获得它,因为您没有访问权限。