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

AWS EC2实例执行Laravel artisan route:cache时触发栈溢出错误

问题解决方案
  • 排查路由中的闭包使用
    Laravel路由缓存不支持直接用闭包定义路由(如Route::get('/', function() { return view('welcome'); })),如果存在这类路由,要把闭包替换成控制器方法。同时检查路由里是否有递归引用的闭包,或者闭包引用了自身关联的对象,这会导致序列化时触发无限递归。

  • 调整PHP栈大小配置
    实例内存升级不直接对应PHP栈内存,需要单独修改PHP配置:

    1. 执行php --ini找到php.ini文件的路径;
    2. 打开文件后修改zend.max_allowed_stack_size的值,比如设置为16M:zend.max_allowed_stack_size = 16777216;
    3. 重启Apache(sudo systemctl restart apache2)或PHP-FPM(如果用FPM,执行sudo systemctl restart php8.2-fpm,版本根据实际情况调整);
      注意:栈大小要逐步调整,避免设置过大引发内存溢出风险。
  • 更新Serializable Closure包
    错误出现在laravel/serializable-closure组件中,可能是版本bug导致,执行composer update laravel/serializable-closure更新到最新稳定版,或者降级到和当前Laravel版本兼容的稳定版本。

  • 排查路由循环依赖
    临时注释部分路由,逐步执行php artisan routes:cache,定位是否存在路由引入的类或服务有循环依赖,导致序列化时无限递归。

  • 清理缓存后重试
    先清理现有缓存:

    php artisan cache:clear
    php artisan route:clear
    

    再重新执行php artisan routes:cache。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:57:21