2012-01-01 109 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