laravel-web-tinker包Ctrl+Enter失效导致php artisan serve进程终止
问题根因
- 版本不兼容:Laravel 6 仅适配
laravel-web-tinker1.x 版本,若安装了2.x及以上版本会出现内存溢出,触发系统OOM killer终止php artisan serve进程 - PHP CLI内存限制过低:tinker执行代码时需要临时占用较高内存,默认php-cli的
memory_limit配置不足时会触发进程强制终止 - 旧版本web-tinker的快捷键提交逻辑存在未捕获异常,引发内存泄漏,最终导致进程崩溃
修复步骤
1. 安装适配版本的laravel-web-tinker
先卸载已安装的不兼容版本,再安装适配1.x分支版本:
composer remove beyondcode/laravel-web-tinker composer require beyondcode/laravel-web-tinker:^1.0 --dev
执行配置发布命令:php artisan vendor:publish --provider="BeyondCode\LaravelWebTinker\WebTinkerServiceProvider"
2. 调整PHP CLI内存限制
编辑PHP7.4 CLI配置文件(默认路径为/etc/php/7.4/cli/php.ini),修改内存限制参数:memory_limit = -1
仅本地测试环境可设置为-1不限制内存,生产环境若需使用该工具建议调整为256M及以上
修改完成后重新启动php artisan serve进程。
3. 功能验证
进入web-tinker页面输入测试代码echo "hello tinker";,按下Ctrl+Enter确认执行结果正常返回,进程无崩溃即可。
异常排查
若调整后仍出现进程被Killed的情况,可执行命令dmesg | grep php查看系统日志,确认是否为OOM导致的进程终止,排查是否存在其他进程占用内存过高的情况。
内容的提问来源于stack exchange,提问作者Muhammad Waqas
相关产品推荐
相关产品推荐

