誰かが私が間違っていることを教えてもらえますか? cron ジョブで実行されるはずの php スクリプトがあり、データベースからデータを抽出して csv ファイルに入れます。ブラウザから実行すると問題なく動作するので、クエリが正しいと確信しています。しかし、cronジョブを使用すると、「入力ファイルが指定されていません。」が返され、ファイルに書き込まれません。
これが私のコードです:
クロン:
/home/ACCOUNT_NAME/public_html/directory/report.sh
report.sh
php -q /home/ACCOUNT_NAME/public_html/directory/report.php
php -q /home/ACCOUNT_NAME/public_html/directory/report_mail.php
report.php
<?php
$con = mysql_connect("localhost", "my_un", "my_pw") ;
if(!$con){
die('Could not connect: ' . mysql_error()) ;
}
mysql_select_db("my_db", $con) ;
if (!function_exists('fputcsv')){
function fputcsv($objFile,$arrData,$strDelimiter=',',$strEnclose='"') {
$strNewLine="\n";
$strToWrite = '';
foreach ($arrData as $strCell){
//Test if numeric
if (!is_numeric($strCell)){
//Escape the enclose
$strCell = str_replace($strEnclose,$strEnclose.$strEnclose,$strCell);
//Not numeric enclose
$strCell = $strEnclose . $strCell . $strEnclose;
}
if ($strToWrite==''){
$strToWrite = $strCell;
} else {
$strToWrite.= $strDelimiter . $strCell;
}
}
$strToWrite.=$strNewLine;
fwrite($objFile,$strToWrite);
}
}
// CUT - MY QUERY HERE
$fp = fopen("/reports/report.csv" , "w+");
foreach ($list as $line) {
fputcsv($fp, split(',', $line));
}
?>
csvファイルは以下に保存する必要があります
/home/ACCOUNT_NAME/public_html/directory/reports/report.csv
ここで何が欠けていますか?ティア