crontab无法执行php的解决方法

初次使用定时脚本的时候,觉得神奇又好玩!简单的开机关机命令,玩的不亦乐乎。闲来无事分享我一下之前做项目的时候遇到的问题。
之前同时完成了好几个脚本,但是有一个脚本无论如何都无法运行,觉得很无奈,路径,配置都一样的写法呀,为什么不通呢?通过一点一点的调试得知原因如下:

因为用crontab在执行php文件时,它是不走apache,nginx服务的!像$_SERVER,$_ENV这类变量是不能使用的,所以如果脚本对应的php代码中不能有这样的变量。

总结一下crontab无法执行php文件的情况及解决办法

一、php文件有没有执行权限
1、查看文件权限:
ls -al | grep RefundController.php在这里插入图片描述

2、如果没有执行命令即可
chmod +x ./RefundController.php

二、如果有执行权限,还是无法运行
1、查看是否有创建日志文件,并赋予读写权限

这个问题我也遇见过,总是忘记!日志对应的文件夹是要自己手动创建的
eg:*/1 * * * * source /etc/profile && /home/wwwroot/test/api/yii refund/refund-query >> /home/wwwlogs/test/refund-query.log 2>&1 &
这个就要自己创建一个test的文件夹,否则无法执行
mkdir test

2、php的路径问题

eg:*/1 * * * * source /etc/profile && /home/wwwroot/test/api/yii refund/refund-query >> /home/wwwlogs/test/refund-query.log 2>&1 &

3、对应脚本php文件中是否出现了魔术变量的问题

如果出现就自行替换为其他方法即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值