artisan 命令无效解决办法之一

php artisan 各种命令无效。包括php artisan list, php artisan make:controller TestController等命令。

file
缘起:线上代码定时任务不能运行。本地和测试区都没有问题。只能在线上服务器查找问题。找了半天也没有找到解决办法。本地测试执行php artisan serve命令后,复现了这个问题。php artisan serve 是方便本地开发的时候没有装apache或nginx时来用来演示的, 使用这个就不能使用php artisan 创建命令了。需要杀掉aritisan 进程。
ps aux | grep artisan
并杀死进程。
file
重新执行php artisan list
file
解决问题,但是线上的服务器还是没有解决问题。大家有遇到这个问题吗?大家是怎么解决的

关注微信公众号:后端时光
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 10

服務器上 執行 php -v 有PHP版本號訊息嗎?? 記得有些服務器要指定PHP版本才能用呢,類似/usr/local/bin/ea-php56 /home/houkangc/domain_path/path/to/cron/script

6年前 评论

是在项目根目录下执行的吗?

6年前 评论

测试了 不是serve的原因 我这里serve了还是一样可以正确执行 我怀疑是你php级别的错误 建议检查php的错误日志
可能的几种错误:1 bootstrap文件夹跟storage文件夹没有权限
2 跟服务器的用户组不一致
3 其他语法错误

6年前 评论

@tradzero 公司项目laravel 版本是5.4.22,的确能出现这个问题。我试了下5.2.45、5.3.31、5.5.40不会复现这个问题

6年前 评论

@tradzero 找到问题了,是因为队列代码当中我们flock一个文件。

file

当取得独占锁定失败时候回退出程序,跟laravel 版本无关,但是以前这样执行的时候没有报错,现在队列不能执行,artisan没有作用。代码也没有更改,这种怎么解决这个问题

6年前 评论

@wpby 可能这是系统层级的死锁? 为什么不用try catch finally 在finally的时候fclose释放资源?

6年前 评论

这个有何解决办法吗?

5年前 评论

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