这是使用错误权限创建“cache”文件夹的代码:
mkdir($saveFolder, 02775);
当我使用ls -la
检查文件夹权限时,我会收到:
drwxr-sr-x
但相反,我期待:
drwxrwsr-x
答案 0 :(得分:5)
出于某些不明原因(至少对我而言)将代码更改为
mkdir($saveFolder);
chmod($saveFolder, 02775);
解决了这个问题。
现在我在文件夹上设置了正确的权限:
drwxrwsr-x
答案 1 :(得分:1)
您当前的umask也会影响模式,因此根据您的umask设置,创建的目录的模式可能与函数调用中指定的八进制不匹配。 http://php.net/manual/en/function.mkdir.php:
默认情况下,模式为0777,这意味着可以进行最广泛的访问。有关模式的更多信息,请阅读chmod()页面上的详细信息。请注意,您可能希望将模式指定为八进制数,这意味着它应该具有前导零。 该模式也会被当前的umask修改,您可以使用umask() 进行更改。
尝试设置umask(0)
,提供给mkdir()
的参数应该按预期工作。