你好,我正在尝试制作一个从服务器中删除一些图像的脚本。我阅读了每一篇关于unlink((和主要权限/错误目录错误、link1、link2的帖子,我尝试了我找到的每一个解决方案,但仍然找不到问题所在。
$baseDir=dirname(__DIR__).'/media/com_iproperty/pictures/';
$deleteImage=$prefix.'_'.$imgParts[0].'.'.$imgParts[$imgLen-1];
var_dump($deleteImage); //196040_DSCN2675.JPG
$deleteThumb=$prefix.'_'.$imgParts[0].'_thumb.'.$imgParts[$imgLen-1];
$user='root';
var_dump($baseDir); ///var/www/vhosts/spiti360.gr/httpdocs/demo2/media/com_iproperty/pictures/
$commandyo='rm '.$baseDir.$deleteImage;
if (file_exists($baseDir.$deleteImage)) {
echo "exists";
chown($baseDir.$deleteImage,$user);
chmod($baseDir.$deleteImage,0777);
//system($commandyo);
unlink($baseDir.$deleteImage);
}
die();
我总是将"exists"字符串作为输出,这意味着文件存在,并且它不是目录错误。
当我使用:
root@server ~ # locate 196040_DSCN2675.JPG
输出:
/var/www/vhosts/spiti360.gr/httpdocs/demo2/media/com_iproperty/pictures/196040_DSCN2675.JPG
该图片未被删除。
我启用了错误显示,我接受了这个:
Warning: chown(): Operation not permitted in /var/www/vhosts/spiti360.gr/httpdocs/demo2/custom_scripts/eAgentSingle.php on line 562
Warning: chmod(): Operation not permitted in /var/www/vhosts/spiti360.gr/httpdocs/demo2/custom_scripts/eAgentSingle.php on line 563
当我从这里阅读时,我在文件上使用chown
和chmod
,在图片文件夹上也使用chmod 777
,但似乎什么都没有改变。
drwxrwxrwx 2 root root 26333184 Jul 6 13:33 pictures
我甚至试着使用system和rm命令,但也没用。我承认这是一个权限错误,但无论我使用的是从stackoverflow或谷歌找到的任何解决方案都不起作用。
我错过什么了吗?
编辑:我使用过:chown -R root:www-data /var/www/vhosts/spiti360.gr/httpdocs/demo2/media/com_iproperty/pictures/
我将图片文件夹的用户组设置为www数据
drwxrwxrwx 2 root www-data 26333184 Jul 6 14:15 pictures
但仍然不起作用。
drwxrwxrwx 2 root root 26333184 Jul 6 13:33 pictures
你必须将用户和/或组设置为www数据,我不记得是否必须两者都是,否则apache将无权删除它。