Php 拒绝从Crontab取消链接的权限

Php 拒绝从Crontab取消链接的权限,php,crontab,cpanel,Php,Crontab,Cpanel,我通过cPanel使用Crontab删除客户端使用PHP脚本上传的文件和目录。这将目录中的映像设置为0644所有者99组99 当执行以下计划的crontab时,我收到权限被拒绝错误 php-q-f/xxx/xxx/deletefiles.php function RemoveDirectory($dirname) { if (!file_exists($dirname)) { return false; } if (is_file($dirname) ||

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

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

php-q-f/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运行相同脚本的权限?我必须将此文件放在根目录中吗?我不喜欢这样


我如何正确地解释这一点。已占用任何帮助。

您可以在删除之前尝试使用设置权限。比如:

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');
}

那没用。每个文件(图像)也应该这样做吗?可能吧。我认为服务器不会允许您在无法删除文件的情况下删除文件夹。我得到了一个chmod():操作不允许。我希望我能提供更多帮助,但我只是使用cron在我的服务器上尝试了您的脚本。我最初也遇到了同样的错误,关于权限被拒绝。然后我将chmod设置在我提到的第一个位置,它对我起了作用。我能想到的唯一一件事是,不知何故,您没有以所有者(root用户)的身份运行脚本,或者您正在尝试从另一台服务器运行脚本。哦,我没有像你那样使用
-q-f
。我对cron不是很熟悉,所以我不确定这是为了什么:)那么服务器肯定有问题。谢谢你的帮助。我必须自己做更多的研究。