PHP Artisan Tinker 从任何命令崩溃

Posted

技术标签:

【中文标题】PHP Artisan Tinker 从任何命令崩溃【英文标题】:PHP Artisan Tinker crashing from any command 【发布时间】:2019-05-15 08:00:08 【问题描述】:

我以前没有遇到过这个问题,但是我的 php artisan tinker 因发出任何命令而崩溃 - 并且没有留下任何关于导致崩溃的日志。

project4 $ php artisan tinker
Psy Shell v0.9.9 (PHP 7.3.0 — cli) by Justin Hileman
>>> use \App\Jobs\testJob;
project4 $

甚至是最简单的命令:

project4 $ php artisan tinker
Psy Shell v0.9.9 (PHP 7.3.0 — cli) by Justin Hileman
>>> print("Hello World!");
project4 $

我几乎想知道它是否没有正确连接到 PHP,但我在任何地方都找不到任何日志。 Laravel 没有命令的踪迹。我跑了brew update,但没有区别。郑重声明,我的所有项目都受到了影响。我不能修补我的任何项目。救命!

我最近确实升级到了 PHP 7.3.0,它在其他所有领域都运行良好。嗯……

【问题讨论】:

你试过运行composer dump-autoload吗? 或者完全吹走vendor,然后composer install 恢复它。 @P.Ellul 试过了,没什么区别。 @ceejayoz 刚刚尝试...什么都没有。 为了清楚起见,artisan 是 Laravel 自带的工具,与composer 无关。 【参考方案1】:

如果您在 Mojave 上使用 homebrew 安装的 PHP 7.3,请尝试在 ~/.config/psysh/config.php 创建一个配置文件(如果还没有的话):

<?php
return [
  'usePcntl' => false,
]; 

来源:https://github.com/bobthecow/psysh/issues/540#issuecomment-446480753

【讨论】:

帮我安装全新的 Mojave! 这完全是我的问题。刚刚在 mojave 上升级到 php 7.3。谢谢! 我遇到了同样的问题,修复适用于 Ubuntu docker 容器和 php 7.4.16。可能我缺少一些 php 扩展。【参考方案2】:

当您使用自制软件升级/安装 PHP 7.3 时,Mojave 会发生这种情况, (这是 PsySh(由 Tinker 使用)和 Homebrew 的 PHP 7.3.0 构建的问题。)

简单的解决方案是, 在你的php.ini 设置中

pcre.jit=0


如果不知道使用的是哪个ini文件,可以运行php --ini查找,

# /usr/local/etc/php/7.3/php.ini
- ;pcre.jit=1
+ pcre.jit=0

【讨论】:

以上是关于PHP Artisan Tinker 从任何命令崩溃的主要内容,如果未能解决你的问题,请参考以下文章

无法从产品表中指定“标题” - php artisan tinker

PHP Artisan Tinker 无法写入配置路径

laravel 5.5:php artisan tinker:ErrorException:目录不为空[重复]

在 php artisan tinker 中保存更改

如何使 php artisan tinker 显示完整的错误(消息)?

使用 php artisan migrate 时,迁移时更改表名,使用 tinker 保存对象时出错