我来告诉你ubuntu通过crontab定时执行php脚本如何实现?
由于需要写定时脚本来运行php文件,之前写过crontab来运行sh脚本,没弄过php的,那么通过1个多小时的实战,参考网络文档 ,终于搞定。
具体方法如下:
sudo vim /etc/crontab
加入:
*/1 * * * * root /usr/bin/php -f /var/www/test.php
参数说明:
*/1 * * * *表示没分钟执行一次,具体如何使用crontab的时间设置,请网络寻找,比较简单
root表示使用root来运行,当然,如果您的.php文件在www-data目录下,建议您使用www-data用户来运行,如果您的.php 文件在其它系统目录盘下,建议您使用root(此处只是本人理解,不确定是否正确,但是经本人测试,root或者www-data都可以,www- data为apache的用户组)
/usr/bin/php -f表示指定php的解析器,其中-f表示后面是一个文件(其中/usr/bin/php是您php的可执行的目录,大部分linux都是/usr/bin/php,如果实在不知道,可以在命令终端输入:which php查看位置)
/var/www/test.php则表示您的php的地址
第二步:
为了检测普通定时是否执行,您可以在crontab下先增加:
*/1 * * * * date >> /var/www/test.log
保存重启sudo service cron restart
过1分钟,请等待查看是否可以生成test.log,如果无法生成,说明普通的定时脚本无法执行,您可以通过终端直接执行:
*/1 * * * * /usr/bin/php /var/www/test.php >> /var/www/test.log 2>&1
来测试是否手动可行
如果能输出test.log则说明手动可行,且log里面已经输出了执行的日志(日志是来自test.php的输出内容)
第三步:
在test.php中输入:
$file=fopen(‘/var/www/1.txt’,’a’);
fwrite($file,”1&”);
fclose($file);
如此,您可以完成ubuntu通过crontab定时执行php脚本,使用过程中可能会遇到不可估量的未知错误或者不明问题,请学会自学,百度&google
提醒:上方所有的路径,都请以绝对路径。包括php的包含include/require等。
当然,test.php文件如果在apache模式运行下,不建议在php第一行加上:#!/usr/bin/php
最后最后,请给test.php设置可执行权限,命令:sudo chmod +x test.php
近期评论