0

サーバー上のディレクトリの1つを再帰的にchmodする必要がある以下のPHP関数があります。

何らかの理由で機能していません-そのディレクトリ内のファイルを出力するだけの簡単なスクリプトでテストしたので、ディレクトリへのパスが正しいことはわかっています。

$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 スクリプトは Web サーバーによって実行されます。Web サーバーは、おそらくシステム上に独自のユーザーを持っています。chmod() しようとしているファイルは root が所有しているため、それらを chmod する権利がありません。最初にファイルシステムに移動し、これらのファイルを正しいユーザーとグループに chown する必要があります。

于 2013-04-25T11:00:01.140 に答える