PHP mkdir()权限

时间:2011-10-24 16:29:24

标签: php apache mkdir

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

mkdir($path,0777)

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

4 个答案:

答案 0 :(得分:22)

您应该尝试使用umask

$old = umask(0); 
mkdir($path,0777); 
umask($old); 

答案 1 :(得分:4)

您可以尝试:

chmod ( string $filename , int $mode )

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

答案 2 :(得分:0)

Apache可能没有权限更改此权限。你能做的是。确保apache与当前文件组在同一组中运行。然后apache将能够对该文件进行更改。您可以在此apache配置中更改您的apache组。或者最简单的方法是将整个项目用户更改为apache用户。然后apache可以根据需要进行更改。

从您的服务器转到该文件并输入ls -al并查看用户和组

答案 3 :(得分:0)

可能是你的umask:

<?php
$old = umask(0);
mkdir($dir,0777);
mask($old);
?>