Laravel Forge部署卡滞于@php artisan package:discover --ansi求助
问题解决思路与步骤
错误码137本质是进程因内存不足被系统强制终止(OOM Killer触发),结合断电后的服务器状态,按以下步骤排查:
1. 确认内存耗尽问题
- 执行
free -h查看当前内存/swap使用情况,确认是否存在内存不足 - 执行
dmesg | grep -i oom查看系统日志,核实是否有OOM Killer终止php artisan package:discover进程的记录
2. 临时绕过内存限制完成包发现
直接执行无内存限制的包发现命令:
php -d memory_limit=-1 artisan package:discover --ansi
如果能成功执行,说明是内存不足导致的问题,继续后续优化;如果仍失败,排查系统层面的资源异常。
3. 排查第三方包内存占用
如果临时调高内存可成功,说明某个第三方包在discover阶段占用过高内存:
- 注释
composer.json中require或require-dev下的部分第三方包 - 执行
composer dump-autoload后再次运行php artisan package:discover --ansi - 逐步定位到触发问题的包,尝试更新该包至最新版本或替换替代方案
4. 释放系统内存与重启服务
- 释放系统缓存(需root权限):
sync && echo 3 > /proc/sys/vm/drop_caches
- 重启PHP-FPM与Nginx服务(替换为对应PHP版本):
sudo systemctl restart php8.2-fpm nginx
5. 配置swap空间缓解内存压力
若服务器无swap或swap空间过小,创建临时swap:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
完成后重新执行部署流程。
6. Laravel Forge专属操作
- 在Forge服务器面板点击「重启服务器」,清除断电后的系统资源残留
- 检查部署脚本是否包含额外高内存消耗步骤,暂时移除后重试部署
内容的提问来源于stack exchange,提问作者Cornel Verster
相关产品推荐
相关产品推荐

