簡體   English   中英

unlink無法刪除文件

[英]unlink cannot delete file

我對使用PHP unlink()在ubuntu中刪除文件感到沮喪。

我創建了一個非常簡單的模擬如下:

  1. 在/ var / www下創建一個名為“files”的文件夾,具有766權限。
  2. 上傳文件,在該文件夾中說“image.png”並將權限設置為666
  3. 創建一個名為delete.php的php文件,將權限設置為644並上傳到/ var / www目錄
  4. 在瀏覽器中調用該文件(我使用localhost)

“image.png”仍然存在於“files”目錄中

這是delete.php的php腳本:

$filename = 'image.png';
$file = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR . $filename;
unlink($file);

我還嘗試了以下腳本:

$filename = 'image.png';
$dir = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'files';
chdir($dir);
unlink($filename);

但仍無法刪除該文件。

Unlink會在失敗時拋出警告。 檢查E_WARNING是否可見,以便了解最新情況。

它通常歸結為用戶權利。 請記住,如果您的腳本是由瀏覽器執行的,通常名為wwwrunwwwdata (或類似的東西)的用戶正在您的服務器上執行它。

檢查此用戶是否有權刪除,然后重試。

目錄的文件夾/所有者可以是與用於運行php的用戶不同的用戶。

您應該創建一個分配了用戶php的文件夾。 如果您不能這樣做,請讓您的ISP進行此操作。 這就是我解決類似問題的方法。

一個用戶無法刪除unix系統上其他用戶的文件。 如果您將其設置為777,那么您可以將其刪除...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM