В настоящее время я пытаюсь создать документ в формате PDF с ~ 230 страницами.
Версия PHP: 7.0.33 Версия mpdf: 8.0.8
1 страница выглядит как страница в этой скрипте (только разные данные): 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 и увеличил размер памяти до 512 МБ, чтобы попробовать, не в этом ли причина проблемы, но безуспешно. И даже если я использую
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 возвращает ошибку 500, но нет журнала ошибок я искал во всех файлах mpdf символ @ и ничего не заменил (просто чтобы попробовать, если после этого я получу какую-либо ошибку), но снова ничего.
Я пытался обновить PHP до версии 7.3, но это тоже не сработало.
Кто-нибудь знает, почему это происходит?