怎么解決無法刪除虛擬主機文件或文件夾 |
發(fā)布時間: 2014/8/12 11:12:58 |
怎么解決無法刪除虛擬主機文件或文件夾,大家在使用Linux的虛擬主機時候有沒有出現(xiàn)過通過FTP無法刪除網(wǎng)站路徑中的一些文件夾和文件,F(xiàn)TP工具軟件會提示Permission Denied(沒有權限),或者 550刪除目錄操作失敗。今天小編在操作FTP的時候就出現(xiàn)了這種問題。出現(xiàn)的原因一般都是這些目錄或文件是PHP程序以管理員用戶寫入的,而一般虛擬主機的用戶名下的用戶又沒有管理員用戶組的權限,因此無法刪除。
我們可以把下面這個PHP代碼放到對應的虛擬主機的空間上運行,按提示輸入文件夾或文件名即可。(注意這里最好使用相對路徑。)*.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <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)) { //根據(jù)分號識別多個文件夾 $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)) { //根據(jù)分號識別多個文件 $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>'; } } } } } //刪除目錄及所包含文件函數(shù) function deldir($dir) { //打開文件目錄 $dh = opendir($dir); //循環(huán)讀取文件 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>
以上代碼中的標點符號可能被轉化為中文標點,會出現(xiàn)錯誤,為了防止出錯大家也可以直接把標點符號改成英文狀態(tài)下的,然后上傳到虛擬主機上。下載好以后然后將*.php上傳到虛擬主機根目錄,然后訪問該文件。然后將要刪除的文件或者文件夾的路徑填寫上去,然后刷新下虛擬主機即可發(fā)現(xiàn)文件已被刪除。 本文出自:億恩科技【mszdt.com】 |