LVE ID 5487 的问题

问题描述 投票:0回答:1

我制作了一个PHP应用程序,使用spatie库顶部将pdf文件转换为jpg,使用ghost脚本和imagickMagic。

这个过程很慢,但是在开发环境中,它运行良好。我刚刚调整了 php.ini 中的 max_time_execution (我使用 xampp)并且 tádááá!它可以很好地处理大型且复杂的 pdf 文件。需要时间,但它会过去。但尚未投入生产

我将 max_time_execution、post_max_size、memory_limit 更改为最大值,但仍然收到此错误消息:

[Thu Jul 25 10:46:54.558135 2024] [lsapi:error] [pid 27229:tid 140211220608768] [client 181.222.135.68:54373] [host myhost.com] Error on sending request(GET /phpfile.php?file=teste.pdf HTTP/1.1); uri(/phpfile.php?file=teste.pdf) content-length(0): ReceiveAckHdr: nothing to read from backend (LVE ID 5487), check http://docs.cloudlinux.com/mod_lsapi_troubleshooting.html, referer: http://mydomain.php

服务器已满负荷,应用程序非常简单:代码如下:

    $pdf = new Spatie\PdfToImage\Pdf("$path".$file);
    $numberPfpages = $pdf->getNumberOfPages();
    $j = 1;
    for ($i=0; $i < $numberPfpages; $i++) {
      $fileName = $path."página_".$j;
      $pdf->setPage($j)->saveImage($fileName.".jpg");
      $j++;
    } 
  }

因此,在这个循环中,文件被分页并将页面转换为jpg,因此用户可以一页一页地阅读jpg格式的pdf。它可以提供更好的用户体验,例如标记页面并对页面进行评论。这就是我发现我的应用程序中具有所有这些功能的方式。

我不知道服务器有什么问题,也不知道如何正确配置它,所以它可以与我选择上传和阅读的任何 pdf 一起运行。

php ghostscript imagick
1个回答
0
投票

您在服务器上遇到的错误消息似乎与 LiteSpeed API (lsapi) 的问题有关,并且服务器已满负荷。

在这方面,您可以尝试修改服务器上的 php.ini 配置(如果您有权访问它),例如:

max_execution_time = 300
max_input_time = 300
memory_limit = 512M
post_max_size = 100M
upload_max_filesize = 100M
max_file_uploads = 20

对于 LiteSpeed,您可以尝试调整子级数量和最大请求数,例如:

LSAPI_CHILDREN=50
LSAPI_MAX_REQUESTS=5000

最后但并非最不重要的一点是,尝试批量处理 PDF 页面:

<?php
    $pdf = new Spatie\PdfToImage\Pdf("$path" . $file);
    $numberPfpages = $pdf->getNumberOfPages();
    $batchSize = 10; // Process 10 pages at a time
    $j = 1;

    for ($i = 0; $i < $numberPfpages; $i += $batchSize) {
        $end = min($i + $batchSize, $numberPfpages);
        for ($k = $i; $k < $end; $k++) {
            $fileName = $path . "pagina_" . $j;
            $pdf->setPage($j)->saveImage($fileName . ".jpg");
            $j++;
        }
        // Optional: Pause or flush the output to free up resources
        sleep(1);
        flush();
    }
?>

希望对您有用!

© www.soinside.com 2019 - 2024. All rights reserved.