Я пытаюсь конвертировать HTML 2 PDF с этой библиотекой и ее преобразование в соответствии с моими ожиданиями.
Однако, когда я конвертирую с большим количеством данных, это выдает мне сообщение об ошибке 504 Время ожидания шлюза .Вот скриншот ошибки, что я получаю.
На локальном сервере все работает нормально.У меня есть один и тот же сервер в моем локальном и моем живом (Linux).Единственная проблема, которую я получаю, когда я пытаюсь создать PDF с длинными данными на живом сервере.
Я исследовал и обнаружил, что для увеличения времени выполнения php и других настроек.Поэтому я пытаюсь поместить приведенный ниже код в мой файл .php .
ini_set('max_execution_time', 60000);
ini_set('post_max_size','128M');
ini_set('upload_max_filesize','128M');
Я даже пытаюсь установить max_execution_time
на 0
и -1
, но у меня это не работает.После установки этих значений я даже напечатал обновленные значения с phpinfo()
, значения перезаписываются, но у меня та же самая ошибка 502 Gateway timeout .Вот небольшой кусок кода на всякий случай, если вы хотите увидеть.
<?php
ini_set('max_execution_time', 60000);
ini_set('post_max_size','20M');
ini_set('upload_max_filesize','8M');
require_once dirname(__FILE__) . '/vendor/autoload.php';
require_once dirname(__FILE__) . '/templateInfo.php';
use Spipu\Html2Pdf\Html2Pdf;
use Spipu\Html2Pdf\Exception\Html2PdfException;
use Spipu\Html2Pdf\Exception\ExceptionFormatter;
use technobrave\brochuresettings\Models\Brochuresettings as BS;
use Technobrave\Transactions\Models\Transactions as TR;
use Technobrave\Offices\Models\Offices;
use technobrave\themesettings\Models\ThemeSetting as TS;
use Technobrave\Team\Models\Team;
class generateTemplate {
public $theme = "";
public $theme_settings = array();
public function __construct($templateId, $resolution , $theme ,$pdf_sections = array(),$openFile = false, $finalPdfFile = null) {
$this->getBrochureTransactionData = BS::first();
$this->getPdfSection = $pdf_sections;
$this->theme_settings = TS::first();
$this->theme = $theme;
$this->baseUrl = url(Config::get('cms'));
$this->teamPageName = $this->baseUrl . '/our-team';
$this->capabilitiesPageName = $this->baseUrl . '/capabilities';
$this->getFooterText = $this->getFooterText();
$getTeamId = (isset($_GET['teamId']) && !empty($_GET['teamId'])) ? $_GET['teamId'] : "";
$this->uniquePath = __DIR__ . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR;
$templatePath = __DIR__ . DIRECTORY_SEPARATOR . 'regency_template' . DIRECTORY_SEPARATOR . $getTeamId . DIRECTORY_SEPARATOR . $templateId . '.php';
$templateInfoText = new templateInfo($templateId, $this->uniquePath, $getTeamId);
$this->customImagePath = $this->uniquePath;
foreach ($templateInfoText->defaultValues as $key => $value) {
$this->{$key} = $value;
}
$template = file_get_contents($templatePath);
try
{
$html2pdf = new Html2Pdf('L','A4', 'en', true, 'UTF-8', array(0, 0, 0, 0));
$html2pdf->Addfont('perpetua');
$html2pdf->Addfont('montserratbold');
$html2pdf->Addfont('montserratmedium');
$html2pdf->Addfont('montserratregular');
$html2pdf->Addfont('montserratsembold');
$html2pdf->Addfont('montserratitalic');
$html2pdf->writeHTML($template, false);
$html2pdf->Output('regency_corporate_brochure.pdf', 'D');
} catch (Html2PdfException $e) {
$formatter = new ExceptionFormater($e);
echo $formatter->getHtmlMessage();
}
}
}
Я попытался просмотреть, как генерируется мой HTML и генерируется без каких-либо ошибок.
$html2pdf->writeHTML($template, true);
Так что, в общем-то, я столкнулся с проблемой сервера в соответствии с моим пониманием.
Может кто-нибудь подсказать мне, что мне делать дальше, чтобы решить эту проблему.