500 使用 mpdf 的内部错误,没有错误日志

问题描述

我目前正在尝试创建一个约 230 页的 pdf 文档。

PHP 版本:7.0.33 mpdf 版本:8.0.8

1 个页面看起来像这个 fiddle 中的页面(仅不同的数据):https://jsfiddle.net/hw90L2kd/ 这是我的 PHP 代码

    setlocale(LC_TIME,"de_DE");

    require_once "../../vendor/autoload.PHP";
    require_once("../../020classes/Arrays.PHP");
    require_once("../../020classes/c_DB.PHP");
    $sql = "SELECT Verr_Rechnungen.*,pat.ZArt,pat.E_Nachrichten,adr.*
    FROM Verr_Rechnungen 
    LEFT JOIN pat ON (Verr_Rechnungen.AdrNr=pat.AdrNrPat)
    LEFT JOIN adr ON (Verr_Rechnungen.AdrNr=adr.AdrNr)
    WHERE  Rechnungsnummer >=".$_GET["rechnungsnummerstart"]." AND Rechnungsnummer <=".$_GET["rechnungsnummerende"]." 
    ORDER BY adr.FName,adr.VName,Land";

    $rs = $db->prepare($sql);
    $rs->execute(); //Im getting results from this

    $mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/temp']);
    
    while($row = $rs->fetch())
    {
        ob_start();
        $mpdf->AddPage();

        //here goes html page,which is generated with some PHP code

        $stylesheet = file_get_contents('rechnungRGDruck.css'); //same css as in the fiddle
        $mpdf->WriteHTML($stylesheet,1);
        $html = ob_get_contents();
        //send the captured HTML from the output buffer to the mPDF class for processing
        $mpdf->WriteHTML($html,2);
        ob_clean();
     }

$mpdf->Output("rechnungen.pdf","D");

我有大约 230 个客户,我每个客户都在此 pdf 中创建了一个页面,但在尝试一次创建所有页面时,我总是收到 500 - 内部服务器错误。如果我将查询限制为 150,则没问题。 我已经限制了 PHP 执行时间并将内存大小增加到 512M,尝试一下是否是问题的原因 - 没有成功。 即使我使用

error_reporting(-1); // reports all errors
ini_set("display_errors","1"); // shows all errors
ini_set("log_errors",1);
ini_set("error_log","PHP-error.log");

文件的顶部,我根本无法生成任何错误,没有日志,什么也没有。只有 500 - 内部服务器错误。 由于这篇文章 php return 500 error but no error log 上的信息,我在 mpdf 的所有文件搜索了 @ 符号,并将其替换为任何内容(只是为了尝试之后是否出现任何错误),但没有再次出现。

我尝试将 PHP 升级到 7.3,但效果不佳。

有人知道为什么会这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)