我有以下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);
}
有什么想法吗?
答案 0 :(得分:1)
chmod($Path.'/'.$File, 0777);
您必须将完整路径放到chmod
答案 1 :(得分:0)
您的PHP脚本由网络服务器执行,网络服务器很可能在您的系统上拥有自己的用户。由于您尝试chmod()的文件归root所有,因此您没有权限chmod它们。您需要先进入文件系统,然后将这些文件chown到正确的用户和组。