ユーザーの crontab に次の行があります。
25 15 * * * /var/www/cronjob/helloworld.php > /var/www/cronjob/cron.log
crontab では、どのバイナリがスクリプトを実行しているかを示す必要があります。hwが示すように、に置き換える必要があります
25 15 * * * <path to php> /var/www/cronjob/helloworld.php > /var/www/cronjob/cron.log
<path to php>
でこれを取得しwhich php
ます。
ファイルに関しては、php スクリプトを実行しているユーザーによってtest.php
コマンドが実行されていることを考慮してください。crontab -l
つまり、ローカル サーバーを実行しているユーザーです。
私はテストをしました:
$ ps -ef | grep apac
.../...
www-data 1348 1332 0 09:50 ? 00:00:00 /usr/sbin/apache2 -k start
私の場合、Apacheを実行しているユーザーのwww-dataです。
あなたのファイルを に追加しました/var/www
:
<?php
$output = shell_exec('crontab -l');
echo "<pre>$output</pre>";
?>
そして、実行中に何も表示されませんでした。なんで?www-data
crontab がないため:
$ sudo crontab -l -u www-data
no crontab for www-data
次の行を追加しました。
$ sudo crontab -l -u www-data
* * * * * touch /tmp/tt
これで、php ページに次のように表示されます。
* * * * * touch /tmp/tt
総括する
スクリプトが正しく機能していないということではなく、ユーザーの crontabwww-data
が空であるため、空のコンテンツが表示されているだけです。