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

问题描述 投票:0回答:1

我在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]子n对stderr说:“ chmod:更改'/ folder / file'的权限:不允许操作”

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

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

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

对stderr说:“ rm:无法删除'文件夹/文件':权限被拒绝”]



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

php nginx permissions chmod
1个回答
0
投票

更改权限的示例:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.