Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 取消链接无法删除文件_Php_Unlink - Fatal编程技术网

Php 取消链接无法删除文件

Php 取消链接无法删除文件,php,unlink,Php,Unlink,我对在ubuntu中使用PHP unlink()删除文件感到沮丧 我创建了一个非常简单的模拟,如下所示: 使用766权限在/var/www下创建名为“files”的文件夹 上传一个文件,比如文件夹中的“image.png”,并将权限设置为666 创建一个名为delete.php的php文件,将权限设置为644并上载到/var/www目录 在浏览器中调用文件(我使用localhost) “image.png”仍然存在于“files”目录中 以下是delete.php的php脚本: $filenam

我对在ubuntu中使用PHP unlink()删除文件感到沮丧

我创建了一个非常简单的模拟,如下所示:

  • 使用766权限在/var/www下创建名为“files”的文件夹
  • 上传一个文件,比如文件夹中的“image.png”,并将权限设置为666
  • 创建一个名为delete.php的php文件,将权限设置为644并上载到/var/www目录
  • 在浏览器中调用文件(我使用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);
    

    但是仍然无法删除该文件。

    目录的文件夹/所有者可能与用于运行php的用户不同

    您应该创建一个指定了php用户的文件夹。如果你自己做不到,请让你的ISP来做。这就是我解决类似问题的方法

    一个用户不能在unix系统上删除另一个用户的文件。 如果将其设置为777,则可以将其删除…

    在失败时抛出警告。检查E_警告是否可见,以了解发生了什么

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


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

    创建image.png的用户是与www data相同的用户(或者谁运行过apache?)如果您可以通过SSH连接到计算机,那么您可能可以运行
    ll
    命令查看要删除的文件和要删除的文件的所有权。通常,您的php脚本由ftp用户拥有,并由root用户上载文件。将它们都放在一个用户组中会有帮助。当我将所有权更改为www数据时,可以删除该文件。谢谢大家的帮助。