我有一個php腳本,正在檢查virustotal掃描的結果。如果掃描對惡意代碼返回肯定,它將在數據庫中將該值更改為0。我有另一個php腳本,它檢查該值,如果它是0,它將從db中刪除該條目,然后從目錄中刪除該文件。當我通過命令行運行它時,它運行完美,但是當cron運行它時,它確實刪除了db條目,但是它并未從目錄中刪除文件。任何幫助將非常感激。這是帶有取消鏈接的php文件的結尾:else{ // if not it deletes the image $hash = $row['hash']; $result2 = mysqli_query($connection, "DELETE FROM userUploads WHERE hash = '$hash' "); // need due to dir structure $pat = str_replace('../','', $row['fileName']); unlink ($pat); if (! $result2){ echo('Database error: ' . mysqli_error($connection)); }
1 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
問題幾乎可以肯定是道路$pat = str_replace('../','', $row['fileName']);。Crons執行PHP cli,這與Apache執行的PHP不同,這也是另一個上下文。嘗試設置絕對路徑:
$pat = "/var/www/myfolder/myscript.some";
如果由于某種原因由于文件夾結構取決于上下文(例如,開發,生產)而需要變量,則可以在cron執行PHP時將變量作為參數傳遞:
//this is the cron
30 17 * * 1 myscript.php myvar
在myscript.php里面$argv[1]是myvar。
- 1 回答
- 0 關注
- 260 瀏覽
添加回答
舉報
0/150
提交
取消