【问题标题】:How to solve "The process has been signaled with signal 11" - Snappy Library?如何解决“进程已通过信号 11 发出信号” - Snappy 库?
【发布时间】:2022-02-16 07:37:50
【问题描述】:

我在 Laravel 5.7 中使用 Snappy PDF 库。在本地它一切正常,但在我的开发环境中我收到此错误:该进程已用信号“11”发出信号。直到现在我还没有找到对我有帮助的解决方案。这是我在控制器中的代码:

   public function pdfReport(Request $request){
    $pdf = \Snappy::loadView('index', compact(
                  'name', 'lname', 'date', 'address'
                  ))
                  ->setOrientation('portrait')
                  ->setOption('margin-bottom', 0)
                  ->setOption('margin-top', 0)
                  ->setOption('margin-left', 0)
                  ->setOption('margin-right', 0);
     return $pdf->download(str_replace(' ', '', $request->description) . Carbon::now()->format('dYm_His') . '.pdf');
  }

感谢任何帮助!!!

【问题讨论】:

  • 在我的例子中,问题是 Xdebug 扩展。

标签: php laravel snappy


【解决方案1】:

这可能与 OP 的问题无关,但如果其他人得到这个,它可能会有所帮助:

就我而言,The process has been signaled with signal "11" 异常与无限循环相关联。我在运行一个陷入自调用递归的测试用例时遇到了这个异常。

更一般地说,signal 11 是分段错误,并且异常由 Symfony Process 类引发。分段错误通常是非法的内存访问,可能由缓冲区或堆栈溢出引起。

所以,就我而言,这是由于无限递归导致的堆栈溢出。

【讨论】:

    【解决方案2】:

    我通过作曲家解决了它。 在我的情况下,它似乎来自 Symfony\process\process.php:441,

        do {
            $this->checkTimeout();
            $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
            $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running);
        } while ($running);
    
        while ($this->isRunning()) {
            $this->checkTimeout();
            usleep(1000);
        }
    

    我遵循了每一步,但没有任何效果。但是跑完之后 “composer require h4cc/wkhtmltopdf-amd64”和“composer require barryvdh/laravel-snappy”我替换了服务器上的vendor目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2021-02-14
      • 2020-01-22
      • 2011-02-17
      • 2012-04-28
      • 2013-12-25
      • 2015-07-12
      相关资源
      最近更新 更多