我想在我的服务器上每五分钟执行一个php脚本,它是一个单独运行的PHP脚本,我尝试了自我的浏览器以及控制台使用“php -f php_file.php”。但我需要每天自动执行它。我在Google上搜索并在这里制作它,但任何解决方案都适用于我:
首先我编辑我的crontab,然后重新启动cron以确保它已正确更新。
*/5 * * * * /usr/bin/php /var/www/myscript.php
我也尝试了以下内容:
*/5 * * * * /usr/bin/php -f /var/www/myscript.php
我也使脚本可执行,查看我的系统日志(我可以看到我的cron正确执行,但它不执行php脚本)我也尝试将cron的输出重定向到文件,但是它使文件为空。 有人可以帮帮我吗?
祝你好运
答案 0 :(得分:1)
通过让脚本可执行,你走在正确的轨道上。
如果需要,再做一次
$ chmod +x script.php
将其添加到文件的最顶部:
#!/usr/bin/php
<?php
// here goes your script
你可以像这样运行它来测试脚本是否执行
$ ./script.php
设置您的cron
工作,如下设置一些日志记录,但要确保从脚本中输出内容,使用print
或echo
以及相关消息。
*/5 * * * * /var/www/script.php >> /var/www/script.log 2>&1
我们将标准输出和错误重定向到script.log
文件。
每5分钟检查一次活动。
更新
在php脚本中试试这个
$file = '/var/www/script.txt';
for($i=0;$i<9;$i++){
$entry = date("Y-m-d H:i:s") . " " . $i . PHP_EOL;
echo $entry; // this should write to the log file
file_put_contents($file, $entry, FILE_APPEND | LOCK_EX);
// and this should write to the script.txt file
}
基本上我们给出文件的完整路径并传递FILE_APPEND
标志,这样我们就不会每次都覆盖。
运行脚本并检查文件是否已创建,默认行为是创建文件(如果文件不存在)。