我有一个Linux服务器与Appache作为Web服务器。在我的PHP脚本中,我使用0777
模式制作目录。代码很简单如下:PHP的mkdir()权限
mkdir($path,0777)
当我运行该脚本,去到我的服务器的文件管理器,文件夹是有,但分配给该文件夹的权限是0755。我想不通为什么正在发生!!当创建的文件夹的用户列已阿帕奇但权限是0755
我有一个Linux服务器与Appache作为Web服务器。在我的PHP脚本中,我使用0777
模式制作目录。代码很简单如下:PHP的mkdir()权限
mkdir($path,0777)
当我运行该脚本,去到我的服务器的文件管理器,文件夹是有,但分配给该文件夹的权限是0755。我想不通为什么正在发生!!当创建的文件夹的用户列已阿帕奇但权限是0755
你应该与umask
$old = umask(0);
mkdir($path,0777);
umask($old);
你可以试试:
chmod (string $filename , int $mode)
看看是否能解决权限问题。
Apache的尝试可能没有权限改变这一点。你可以做的是。确保Apache与您当前的文件组在同一组中运行。然后apache将能够对该文件进行更改。你可以在这个apache配置中更改你的apache组。或者最简单的方法是将整个项目用户更改为apache用户。然后apache可以做出想要的改变。
转到文件从你的服务器,并输入ls -al并期待在用户和组
可能是你的umask:
<?php
$old = umask(0);
mkdir($dir,0777);
mask($old);
?>
的感谢!解决了这个问题...但仍然困惑为什么我的脚本能够创建777文件夹权限? – samach
@Salmanmahmood:这是Linux中应该理解的东西http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html只是一个供您参考的链接 –
通常,umask是022,这意味着忽略任何组或其他写入权限。所以如果请求的权限是0777,那么授予的权限是0777-022 = 0755。 – MetaEd