当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    linux服务器下完美解决无法删除虚拟主机文件或文件夹

    栏目:win服务器问题汇总 时间:2019-12-11 22:19

    FTP工具软件会提示Permission Denied(没有权限),或者 550删除目录操作失败。今天小残在操作FTP的时候就出现了这种问题。

    出现的原因一般都是这些目录或文件是PHP程序以管理员用户写入的,而一般虚拟主机的用户名下的用户又没有管理员用户组的权限,因此无法删除。
    大家在使用Linux的虚拟主机时候有没有出现过通过FTP无法删除网站路径中的一些文件夹和文件

    我们可以把下面这个PHP代码放到对应的虚拟主机的空间上运行,按提示输入文件夹或文件名即可。(注意这里最好使用相对路径。)

    <?php
    /*
     ####警告####
     本软件为空间维护工具,使用完毕之后请立即删除本文件
     www.exehack.net
    */
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>空间文件夹/文件删除工具</title>
    <style>
    body {font-family:"宋体"; font-size:12px;}
    imput { border:1px #ccc solid;}
    b { color:#FF0000;}
    </style>
    </head>
    <body>
    <form action="?action=dirdel" method="post">
    删除文件夹,<b>请确定填写无误后再进行删除操作!</b><br>
    请输入文件夹路径,多个文件夹请使用";"隔开
    <input type="text" name="all_folder" size="50">
    <input type="submit" value="删除">
    </form>
    <br>
    <form action="?action=filedel" method="post">
    删除文件,<b>请确定填写无误后再进行删除操作!</b><br>
    请输入完整的文件路径,多个文件请使用";"隔开
    <input type="text" name="all_files" size="50">
    <input type="submit" value="删除">
    </form>
    <br>
    <?php
    $action = $_GET['action'];
    //删除目录操作
    if($action=='dirdel') {
     $all_folder = $_POST['all_folder'];
     if(!empty($all_folder)) {
     //根据分号识别多个文件夹
     $folders = explode(';',$all_folder);
     if(is_array($folders)) {
     foreach($folders as $folder) {
     deldir($folder);
     echo $folder . '删除成功<Br>';
     }
     }
     }
    }
    if($action=='filedel') {
     $all_files = $_POST['all_files'];
     if(!empty($all_files)) {
     //根据分号识别多个文件
     $files = explode(';',$all_files);
     if(is_array($files)) {
     foreach($files as $file) {
     if(is_file($file)) {
     if(unlink($file)) {
     echo $file . '删除成功<Br>';
     } else {
     echo $file . '无法删除,请检查权限<Br>';
     }
     } else {
     echo $file . '不存在<br>';
     }
     }
     }
     }
    }
    //删除目录及所包含文件函数
    function deldir($dir) {
     //打开文件目录
     $dh = opendir($dir);
     //循环读取文件
     while ($file = readdir($dh)) {
     if($file != '.' && $file != '..') {
     $fullpath = $dir . '/' . $file;
     //判断是否为目录
     if(!is_dir($fullpath)) {
     //如果不是,删除该文件
     if(!unlink($fullpath)) {
     echo $fullpath . '小残提示:无法删除,可能是没有权限!<br>';
     }
     } else {
     //如果是目录,递归本身删除下级目录
     deldir($fullpath);
     }
     }
     }
     //关闭目录
     closedir($dh);
     //删除目录
     if(rmdir($dir)) {
     return true;
     } else {
     return false;
     }
    }
    ?>
    </body>
    </html>

    为了防止出错大家也可以直接下载文件然后上传到虚拟主机上。

    下载地址:本地下载

    下载好以后然后将 exehack.php上传到虚拟主机根目录,然后访问该文件。

    即http://www.exehack.net/exehack.php