DOMPdf 不在生产服务器上生成 PDF,只显示代码

DOMPdf not generating PDF on production server, only showing code

我在本地服务器上从 HTML 生成了一个可用的 DOMPdf。我将它上传到我的生产服务器,从我的第一次测试来看它似乎工作正常。几天前,我开始收到有关 PDF 生成仅显示符号和字母的报告。所以,我检查并做了一些测试,显然问题出在 DOMPdf 库、PHP fpm 和 CodeIgniter 之间。

生产服务器使用:

网站使用:

所以,在玩了一会儿之后我注意到,如果我在 CodeIgniter 之外使用 PDF 生成代码,它可以正常工作,但是如果我尝试在 CodeIgniter 实例中使用它,我得到这个:

我的理论是,这基本上是一个 header 问题,但我不确定是什么原因造成的。

最后我和 CodeIgniter 论坛的人一起检查了它,我得到了两个可能的解决方案。显然这是一个 header/buffer 问题。

因此,有两个选项可以解决此问题:

选项 1 - 删除 Content-Type

的特定 header
//in controller method
$this->response->removeHeader('Content-Type'); 

选项 2 - 在代码末尾添加 exit() 命令

$dompdf->stream("test.pdf",array('Attachment'=>0)); 
exit();