为什么创建的cron(php artisan schedule:run)会报错,但是手动运行是好的

系统

Mac OS Big Sur

Laravel version

5.7

php version

7.3

执行过程

crontab -e
* * * * * cd /Users/original/Sites/crm && php artisan schedule:run >> /tmp/log.log

日志输出:

为什么的cron(php artisan schedule:run)会报错,但是手动运行是好的

但是我手动运行php artisan schedule:run是好的,
日志里面的sql我运行也是有记录的。

为什么的cron(php artisan schedule:run)会报错,但是手动运行是好的

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

一个可能的原因是没指定用户。

另一个可能的原因是你的 系统里有好几个php,建议在cron 里指定 php这个命令的绝对路径 ,比如

* * * * *  root /usr/bin/php /Users/original/Sites/crm/artisan schedule:run >> /tmp/log.log

root 是用户,当然最好改成nginx里配置的那个用户

2年前 评论
ErzaQ (楼主) 2年前
讨论数量: 5
* * * * *  php /Users/original/Sites/crm/artisan schedule:run >> /tmp/log.log
2年前 评论

应该是php链接不到数据库 看一下php.ini中配置项配置的mysql文件路径是否存在 找到相应的.sock文件,并设置php.ini文件中的pdo_mysql.default_socket的值为.sock文件的路径。

pdo_mysql.default_socket= /usr/local/mysql/mysql.sock

mysqli.default_socket =/usr/local/mysql/mysql.sock

2年前 评论

一个可能的原因是没指定用户。

另一个可能的原因是你的 系统里有好几个php,建议在cron 里指定 php这个命令的绝对路径 ,比如

* * * * *  root /usr/bin/php /Users/original/Sites/crm/artisan schedule:run >> /tmp/log.log

root 是用户,当然最好改成nginx里配置的那个用户

2年前 评论
ErzaQ (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!