Php 取消链接无法删除文件
我对在ubuntu中使用PHP unlink()删除文件感到沮丧 我创建了一个非常简单的模拟,如下所示: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
$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数据时,可以删除该文件。谢谢大家的帮助。