unlink无法删除文件

use*_*475 4 php unlink

我对使用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);
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下脚本:

$filename = 'image.png';
$dir = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'files';
chdir($dir);
unlink($filename);
Run Code Online (Sandbox Code Playgroud)

但仍无法删除该文件.

Bjo*_*ern 5

Unlink会在失败时抛出警告.检查E_WARNING是否可见,以便了解最新情况.

它通常归结为用户权利.请记住,如果您的脚本是由浏览器执行的,通常是名为wwwrunwwwdata(或类似的)用户正在您的服务器上执行它.

检查此用户是否有权删除,然后重试.