PHP设置权限并删除文件夹文件



我在Centos上使用PHP 7.3+nginx。我的应用程序包含一个已装入的文件夹,其中包含来自另一台服务器的文件。一旦我对那些文件没有任何用处,我就需要删除它们。我用下面的代码删除了那些文件。代码运行良好,但其中一些文件是在没有更多限制的情况下创建的(仅读取(,并且只有在手动设置chmod-R 775的情况下,我的应用程序才能删除它们。

function remove_dir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir"){
remove_dir($dir."/".$object); 
}else {
unlink   ($dir."/".$object);
}
}
}
reset($objects);
rmdir($dir);
return true;
}
return false;
}

我试过这个:

$command = "chmod -R 775 ".$folder;
exec($command);

但总是带有:

警告:[pool www]child n对stderr说:"chmod:更改'/folder/file'的权限:不允许操作">

是否可以设置这些权限,或者我需要创建那些已经设置了正确权限的要删除的文件?

我试过这个,但它也给了我权限错误。

$command = "rm -rf {$local}";
exec($command, $output, $status);

对stderr说:"rm:无法删除‘文件夹/文件’:权限被拒绝">



编辑:所以我读了很多建议,我发现最好不要通过网络应用程序来做这件事,即使它只是在我的公司内部运行。我创建了一个脚本,我将通过crontab运行。解决我的问题,没有任何安全顾虑

更改权限的示例:

<?php 
$fn = './test.txt';
chmod($fn, 0777);

请注意,我们将0放在777之前,要求PHP将其解释为八进制数。

最新更新