私はループを実行する毎分cronジョブを実行しています。私は各ループの結果をログファイルに出力しています。この関数はクラスの内部にあり、関数が手動で呼び出されると完全に正常に実行されます。しかし、関数がcronジョブを介して呼び出された場合、file_put_contents()は何もしません(この関数の残りの部分はテーブル挿入と同じです)。PHP 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);
}
を持っていませんでした。 chmod 0777 -R log/ – JYoThI
この関数は、手動で呼び出されたときにログファイルに書き込みます。つまり、$ class-> updatePair(...)ですが、cronがそれを行うと決めるときではありません。 cronには異なる権限が必要ですか?初心者の疑問を言いなさい。 – Nick
あなたはapacheユーザに許可を与える必要があります – JYoThI