laravel - DOMPDF 无法在服务器上加载 PDF 文档(生产)
问题描述
我正在使用 laravel 8 并在 MAMP 上安装了 dompdf 并且一切正常,但是一旦我将它部署到我的生产服务器 dompdf 就不再工作了。
我收到以下消息:无法加载 PDF 文档。
当我检查服务器日志时,我只看到 500 错误,没有任何其他详细信息。
有没有人遇到过同样的问题?
我正在使用 Laravel 8.12 和 php 7.3.27 和 dompdf
"barryvdh/laravel-dompdf": "^0.9.0",
这是我使用的代码:
$pdf = PDF::loadView('pdf.letters', ['batch' => $batch]);
return $pdf->stream('document.pdf');
我已经检查并确保:
- MBString 扩展已启用
- DOM 扩展
我不加载任何自定义字体。
我试过的:
- 从 dompdf 0.9.0 降级到 0.8.0
- 项目清单
Apache 日志不返回任何附加信息,仅返回 500 错误。Laravel 日志返回以下内容:
标准输出:“”命令:/usr/local/bin/wkhtmltopdf --lowquality '/tmp/knp_snappy6039f3cdd6edf5.34383100.html' '/tmp/knp_snappy6039f3cdd702b5.29005326.pdf'。在/var/www/vhosts/domain.com/httpdocs/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php:381)
这是我的 composer.json :
"require": {
"php": "^7.3|^8.0",
"barryvdh/laravel-dompdf": "^0.8.3",
"barryvdh/laravel-snappy": "^0.4.8",
"carlos-meneses/laravel-mpdf": "^2.1",
"darryldecode/cart": "^4.2",
"fideloper/proxy": "^4.4",
"fruitcake/laravel-cors": "^2.0",
"gladcodes/keygen": "^1.1",
"guzzlehttp/guzzle": "^7.0.1",
"h4cc/wkhtmltopdf-i386": "0.12.x",
"intervention/image": "^2.5",
"knplabs/knp-snappy": "^1.2",
"laravel/framework": "^8.12",
"laravel/tinker": "^2.5",
"laravelcollective/html": "^6.2",
"mollie/laravel-mollie": "^2.0",
"picqer/php-barcode-generator": "^2.1",
"spatie/laravel-medialibrary": "^7.0.0",
"stripe/stripe-php": "^7.74"
},
谢谢你。
解决方案
推荐阅读
- reactjs - eventListener 不适用于 react-router-dom 递归路由
- palantir-foundry - 在 Foundry 中,如何解析具有 JSON 响应的数据框列
- spring-boot - 是否有任何 Elastic Search appender 可以在不使用 ELK 堆栈的情况下直接将 spring-boot 应用程序日志发送(存储)到 Elastic Search
- angular - Angular 2:单击特定页面图标后隐藏侧边栏菜单
- python - Azure 函数错误:解析响应正文时出现错误“SyntaxError:JSON 中位置 0 的意外令牌 S” - 服务不可用
- c# - 小于 0-255 的位二进制溢出,例如 0-32?
- php - PHP Wordpress 意外 '' (T_ENCAPSED_AND_WHITESPACE),期望 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING)
- node.js - 如何在 Flutter 中使用 PassportJS for GoogleAuth 处理对节点服务器的登录请求?
- sockets - 为什么我们得到间歇性 gRPC 不可用/未知 RpcExceptions (C++/C#) 的任何想法
- java - 条件不起作用的JPA createQuery