2012-01-01 53 views
0

我通过cPanel使用Crontab删除客户端使用PHP脚本上传的文件和目录。这将目录中的映像设置为0644所有者99组99.权限拒绝从Crontab的UNLINK

当执行以下计划的crontab时,我得到权限被拒绝的错误。

PHP -q -f /xxx/xxx/xxx/deletefiles.php

function RemoveDirectory($dirname) { 
    if (!file_exists($dirname)) { 
     return false; 
    } 
    if (is_file($dirname) || is_link($dirname)) { 
     return unlink($dirname); 
    } 
    $dir = dir($dirname); 
    while (false !== $entry = $dir->read()) { 
     if ($entry == '.' || $entry == '..') { 
      continue; 
     } 
     RemoveDirectory($dirname . DIRECTORY_SEPARATOR . $entry); 
    } 
    $dir->close(); 
    return rmdir($dirname); 
} 
if (is_dir('/xxx/xxx/public_html/xxx/xxx')) { 
    RemoveDirectory('/xxx/xxx/public_html/xxx/xxx'); 
} 

如果我通过PHP运行在同一个脚本自己只是正常工作。我如何给crontab权限来运行相同的脚本?我必须将此文件放在根目录中吗?我不喜欢。

我如何正确解释。任何帮助拨款。

回答

0

在删除它之前,您可以尝试使用chmod来设置权限。例如:

if (is_file($dirname) || is_link($dirname)) { 
    chmod($dirname, 0777); 
    return unlink($dirname); 
} 


if (is_dir('/xxx/xxx/public_html/xxx/xxx')) { 
    chmod("/xxx/xxx/public_html/xxx/xxx", 0777); 
    RemoveDirectory('/xxx/xxx/public_html/xxx/xxx'); 
} 
+0

这并没有做到这一点。这应该在每个文件(图像)上完成吗?大概是 – Tim 2012-01-01 15:02:02

+0

。我不认为服务器会让你删除文件夹而不能删除文件。 – john 2012-01-01 15:08:55

+0

我得到一个chmod():不允许操作 – Tim 2012-01-01 15:46:22