You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行php artisan route:cache报stream_set_chunk_size错误如何解决

问题根因

该错误由Monolog日志组件的兼容问题触发:当运行在32位PHP环境、或者使用存在bug的Monolog版本时,StreamHandler 传入 stream_set_chunk_size() 函数的块大小超过了32位有符号整数的最大值2147483647,直接抛出异常。

可用解决方案
  • 方案1:调整Monolog版本(最优解)
    Laravel 8.x 配套的部分Monolog 2.x早期版本存在该bug,执行以下命令安装修复后的版本即可:
    composer require monolog/monolog:^2.5.0
    
    如果你使用Laravel 9及以上版本,直接升级Monolog到3.x系列即可彻底解决该问题。
  • 方案2:临时切换日志驱动绕过错误
    不需要修改依赖的临时方案:编辑项目根目录的.env文件,将日志驱动从stack修改为single:
    LOG_CHANNEL=single
    
    修改完成后再次执行php artisan route:cache即可,命令执行完成后可以按需改回原有日志配置。
  • 方案3:临时修改vendor源码(仅应急使用)
    如果你不方便修改依赖和配置,可以直接修改报错文件的逻辑,手动限制块大小上限:
    打开 vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php,找到第144行的stream_set_chunk_size调用,修改为:
    stream_set_chunk_size($this->stream, min($chunkSize, 2147483647));
    
    注意该修改会在后续执行composer update时被覆盖,仅适合临时应急。
  • 方案4:升级到64位PHP环境
    32位PHP的整数最大值限制更低,更容易触发这类溢出问题,升级到64位PHP版本可以从底层避免该类问题,同时还能获得更好的性能表现。

内容的提问来源于stack exchange,提问作者nova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:06:03