PHP mkdir()权限

sam*_*ach 8 php apache mkdir

我有一个带有appache的Linux服务器作为Web服务器.在我的PHP脚本中,我使用0777模式创建目录.代码非常简单如下:

mkdir($path,0777)
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本并转到我的服务器文件管理器时,该文件夹在那里,但分配给该文件夹的权限是0755.我无法弄清楚为什么会发生这种情况!创建文件夹时,用户列中包含apache,但权限为0755.

Sha*_*ngh 22

你应该尝试使用umask

$old = umask(0); 
mkdir($path,0777); 
umask($old); 
Run Code Online (Sandbox Code Playgroud)

  • 通常,umask是022,这意味着忽略任何组或其他写权限.因此,如果请求的权限是0777,则授予的权限是0777 - 022 = 0755. (3认同)

Kur*_*nai 6

你可以试试:

chmod ( string $filename , int $mode )
Run Code Online (Sandbox Code Playgroud)

看看是否可以解决权限问题。