递归Chmod不能正常使用PHP

时间:2013-04-25 09:23:50

标签: php function chmod

我有以下PHP函数,应该递归chmod我的服务器上的一个目录。

由于某种原因,它不起作用 - 我知道dir的路径是正确的,因为我已经使用快速脚本测试它,只打印出该目录中的文件。

$root_tmp = '/tmp/mixtape2'; 
chmod_r($root_tmp);

function chmod_r($Path) {
$dp = opendir($Path);
while($File = readdir($dp)) {
  if($File != "." AND $File != "..") {
     if(is_dir($File)){
        chmod($File, 0777);
        chmod_r($Path."/".$File);
     }else{
         chmod($Path."/".$File, 0777);
     }
  }
closedir($dp);
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

chmod($Path.'/'.$File, 0777);

您必须将完整路径放到chmod

答案 1 :(得分:0)

您的PHP脚本由网络服务器执行,网络服务器很可能在您的系统上拥有自己的用户。由于您尝试chmod()的文件归root所有,因此您没有权限chmod它们。您需要先进入文件系统,然后将这些文件chown到正确的用户和组。