2011-02-16 85 views
2

如果我在php中使用mkdir()创建一个文件夹,它具有www-data:www-data用户和755权限。chmod 777在php

问题是我不能用ftp用户(zapbe:psasrv)删除这个文件夹 我试图在PHP中用chmod($ path,“0777”)修改文件夹,但这不起作用。

如何使创建的文件夹和上传的文件对于www数据和ftp用户都可读/可移动?

+0

你试过设置模式明确? `mkdir(“/ path/to/my/dir”,0777);` – miku 2011-02-16 16:36:23

回答

5
bool chmod (string $filename , int $mode) 

在PHP中,他们可能是在安全一定的局限性,因此,根据你的配置可能无法正常工作。

上述函数返回一个booleon让你知道它是否成功地改变了实体的权限。

if(!chmod($directory,0777)) 
{ 
    echo "Unable to chmod $direcotry"; 
} 

另外,从PHP报价:

当前用户是执行PHP的用户。它可能与您用于普通shell或FTP访问的用户不同。只有在大多数系统上拥有该文件的用户才能更改该模式。

理解上面,你应该看看chown

0

删除双引号和尝试,并检查文件

chmod($path, 0777) 
2

的默认所有者当您创建* nix中一个文件夹的其他用户就不必删除/修改该文件夹的能力。

改变创建的文件夹的WWW的数据的权限,从浏览器中的PHP脚本运行的命令,它应该更新成功

不要把新的权限在双引号,它需要一个 八进制数

chmod($path, 0777); 
// not chmod($path, "0777); 

一旦你做到这一点任何人都可以修改文件夹

4

为了删除目录,您需要在父目录上有写权限,而不是在要删除的目录上有写权限。为了提供对父进程的写访问权,一个好的方法是使某个组的所有者拥有www-data和您的ftp用户都是其成员,并且从不使用777权限。此外,请确保您的父文件夹没有设置粘滞位。