HTML2PDF 504 Тайм-аут шлюза - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь конвертировать HTML 2 PDF с этой библиотекой и ее преобразование в соответствии с моими ожиданиями.

Однако, когда я конвертирую с большим количеством данных, это выдает мне сообщение об ошибке 504 Время ожидания шлюза .Вот скриншот ошибки, что я получаю.

enter image description here

На локальном сервере все работает нормально.У меня есть один и тот же сервер в моем локальном и моем живом (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); 

Так что, в общем-то, я столкнулся с проблемой сервера в соответствии с моим пониманием.

Может кто-нибудь подсказать мне, что мне делать дальше, чтобы решить эту проблему.

...