首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mPDF从不在Ubuntu / Apache / PHP7堆栈上呈现

mPDF从不在Ubuntu / Apache / PHP7堆栈上呈现
EN

Stack Overflow用户
提问于 2016-06-30 17:17:53
回答 1查看 2.3K关注 0票数 0

我使用HTML将mPDF页面转换为PDF。

这个库在运行PHP5.6的本地机器和开发服务器上工作得很好。

然而,在亚马逊新提供的Ubuntu 16盒上,使用Apache2.4.18和PHP 7,我无法让它工作。

其症状是PDF从未生成--浏览器一直在不停地旋转,最终我不得不退出浏览器以逃避这个过程。我没有收到任何错误消息。

我已经仔细研究了我的脚本,看看这个过程在哪里被卡住了,并且它是在这个方法上进行的:

代码语言:javascript
复制
$mPDF->WriteHtml($html);

我尝试将一个非常简单的HTML字符串传递到函数中,例如:

代码语言:javascript
复制
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
    <b>Hello!</b>
    </body>
</html>

这确实有效。

所以我想知道我的HTML的质量。通过W3校验器运行我的HTML显示了一些我现在已经修复的错误,但这并没有解决我的问题。

所以我现在想知道我的HTML的大小--它是一个正在呈现的大页面,通常在PDF上超过20页。

我的脚本为进程分配了大量内存:

代码语言:javascript
复制
ini_set('memory_limit', '1024M');

服务器共有8G内存。

我是否应该在服务器配置中签入可能影响mPDF的内容?

感谢你的期待。

编辑

经过进一步的调试和剥离HTML回到越来越小的部分,我已经能够得到PDF生成-但它是极其缓慢的。

mPDF似乎也找不到图像资产,所以我在PDF上得到了破碎的图像符号。我想知道这个服务器设置是否有一个奇怪的webroot / basePath,这意味着mPDF找不到它正在寻找的资产?

编辑2

想知道这个问题现在是否是mPDF未呈现图像(mPDF错误:图像错误找不到图像文件)的复制品

我看到了同样的问题--慢加载和图像丢失

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-01 15:10:03

因此,服务器有一个IP防火墙,mPDF使用file_get_contents()将PDF的资产引用为外部资产,包括域名:

代码语言:javascript
复制
file_get_contents('http://server.com/asset/anAsset.jpg');

这意味着请求将退出服务器,返回到服务器并被防火墙拒绝。

拆除防火墙解决了我们的问题。

我仍然想知道mpdf是否可以在本地引用资产。它的basePath属性的文档似乎表明它总是使用完整的域URL:

https://mpdf.github.io/reference/mpdf-functions/setbasepath.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38129577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档