0

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

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

$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);
}

有任何想法吗?

4

2 回答 2

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

您必须输入 chmod 的完整路径

于 2013-04-25T09:30:44.053 回答
0

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

于 2013-04-25T11:00:01.140 回答