现在需要在linux下定时执行php文件
我的配置过程是:cd /etccrontab -e*/5 * * * * /usr/local/bin/php /home/he/website/call.php
其中call.php是需要定时执行的脚本,/usr/local/bin/php 是php的目录编辑完后重启了crond服务
现在的问题是,脚本没有定时执行。我在crontab 中添加另一项任务
*/1 * * * * date >> aaa.txt 却可以正常执行不知道是什么原因,请大家不吝指教。
先谢谢大家。
我的配置过程是:cd /etccrontab -e*/5 * * * * /usr/local/bin/php /home/he/website/call.php
其中call.php是需要定时执行的脚本,/usr/local/bin/php 是php的目录编辑完后重启了crond服务
现在的问题是,脚本没有定时执行。我在crontab 中添加另一项任务
*/1 * * * * date >> aaa.txt 却可以正常执行不知道是什么原因,请大家不吝指教。
先谢谢大家。
/usr/local/bin/php /home/he/website/call.php
检查是否可以正确执行
唔。究竟是怎么一回事呢?不会是权限的问题:我是用的sudo crontab -e
/usr/local/bin/php /home/he/website/call.php/usr/local/bin/php 楼主检查下php路径,从你的问题来看是Php安装程序路径问题。
肯定不是安装路径问题,我说了,直接命令行执行/usr/local/bin/php /home/he/website/call.php
是可以正确执行的。
普通用户,有sudo权限,我是 sudo crontab -e
crontab -e
*/1 * * * * date >> /usr/local/mydate.log
保存后重启crontab :
service crond restart
过一分钟后发现/usr/local下生成了mydate.log,说明对普通的定时任务可以执行。
2.现在php脚本不能定时执行,应该是脚本的路径问题或者php的路径问题,于是,手工执行了/usr/local/bin/php /usr/he/website/call.php
发现可以正常执行。于是想到把相关的log打出来*/1 * * * * /usr/local/bin/php /usr/he/website/call.php >>mylog.log 2>&1
过一分钟后打开mylog.log文件,发现提示的错误是:file_get_contents(./view/....)这个错误,至此错误很明显了,是相对路径的问题,把他改为绝对路径后,可以执行了。很感激8楼的提醒。