簡體   English   中英

PHP cron作業沒有通過file_put_contents()運行日志

[英]PHP cron job not running log via file_put_contents()

我每分鍾運行一個cron作業,它運行一個循環; 我將每個循環的結果輸出到日志文件中。 此函數位於類中,並且在手動調用函數時運行絕對正常。 但是,當通過cron作業調用該函數時,file_put_contents()不執行任何操作(此函數的其余部分工作正常,即表插入)。

protected function updatePair( $time, $pair_reference, $price, $exchange_id ) {

    $exchange_reference = get_field('reference', $exchange_id);

    global $wpdb;
    $table = $wpdb->prefix . $pair_reference . '_' . $exchange_reference;

    // Insert time and price into table
    $wpdb->insert($table, array(
        "time"  => $time,
        "price" => $price
    ));

    //Write action to txt log
    $log  = "Pair: ".$pair_reference.' - '.date("F j, Y, g:i a").PHP_EOL.
            "Attempt: Finished".PHP_EOL.
            "-------------------------".PHP_EOL;
    //-
    file_put_contents('log/exchange.txt', $log, FILE_APPEND);

}

以防萬一將來面臨同樣的問題,問題在於權限,解決你需要更改php腳本文件權限的問題,它必須具有寫權限),這樣做:

  1. 使用FTP客戶端(即Filezilla) :右鍵單擊腳本文件,選擇“文件”權限,為用戶和用戶組授予寫入權限(即766)

  2. 使用終端

    chmod 766 / path / to / php_script

首先確保日志文件夾存在,或者您可以通過以下代碼進行檢查:

if(!file_exists(__DIR__ . '/log') && !is_dir(__DIR__ . '/log')){
    mkdir(__DIR__ . '/log');
}

第二次使用絕對路徑:

file_put_contents(__DIR__ . '/log/exchange.txt', $log, FILE_APPEND);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM