PHP Erro fatal: tempo máximo de execução de 0 segundo excedido

2

Eu tenho o aplicativo PHP que usa pdf2htmlEX e HTMLpurifier para converter documentos PDF em formato de texto. Processo de conversão consiste em alguns passos:
1. carregando o livro usando o navegador da web
2. conversão de pdf para txt usando pdf2htmlex
3. processando arquivos txt usando HTMLPurifer

Para a maioria dos documentos tudo funciona corretamente, mas para alguns documentos com muitas páginas (mais de 230) o passo 3 falha. Enquanto HTMLpurifier processa a página, ele gera um erro: "PHP Erro fatal: Tempo máximo de execução de 0 segundo excedido". Na minha configuração max_execution_time é definido como 0. Eu anexei strace ao processo do Apache e aqui está a saída antes da rescisão:

lstat("/tmp/books/3349/html/78.page", {st_mode=S_IFREG|0644, st_size=40165, ...}) = 0
open("/tmp/books/3349/html/78.page", O_RDONLY) = 20
fstat(20, {st_mode=S_IFREG|0644, st_size=40165, ...}) = 0
lseek(20, 0, SEEK_CUR)                  = 0
fstat(20, {st_mode=S_IFREG|0644, st_size=40165, ...}) = 0
read(20, "<div class=\"pd w1 h1\"><div id=\"p"..., 8192) = 8192
read(20, "AACAsAQAAQFgCAAAgLAEAABCWAAAACEs"..., 8192) = 8192
read(20, "7\"><span class=\"_ _1f\"> </span>F"..., 8192) = 8192
read(20, "class=\"_ _8\"> </span>of<span cla"..., 8192) = 8192
read(20, "/span></div><div class=\"t m1 x7a"..., 8192) = 7397
read(20, "", 8192)                      = 0
read(20, "", 8192)                      = 0
close(20)                               = 0
lstat("/tmp/books/3349/text/78.txt", 0x7fff115a43f0) = -1 ENOENT (No such file or directory)
open("/tmp/books/3349/text/78.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 20
fstat(20, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
lseek(20, 0, SEEK_CUR)                  = 0
write(20, "66 2. TOPOSESa 741xed space is a"..., 2157) = 2157
close(20)                               = 0
lstat("/tmp/books/3349/html/79.page", {st_mode=S_IFREG|0644, st_size=48214, ...}) = 0
open("/tmp/books/3349/html/79.page", O_RDONLY) = 20
fstat(20, {st_mode=S_IFREG|0644, st_size=48214, ...}) = 0
lseek(20, 0, SEEK_CUR)                  = 0
fstat(20, {st_mode=S_IFREG|0644, st_size=48214, ...}) = 0
read(20, "<div class=\"pd w1 h1\"><div id=\"p"..., 8192) = 8192
read(20, "AWAIAACAsAQAAYN5hAoBPSWIEdtXWCAD"..., 8192) = 8192
read(20, "=\"_ _0\"></span>oof<span class=\"f"..., 8192) = 8192
read(20, "c\"></span>).</span></div><div cl"..., 8192) = 8192
read(20, "lass=\"_ _23\"> </span>sho<span cl"..., 8192) = 8192
read(20, "ls0 ws0 r0\">F<span class=\"ff4\"><"..., 8192) = 7254
read(20, "", 8192)                      = 0
read(20, "", 8192)                      = 0
close(20)                               = 0
--- SIGPROF (Profiling timer expired) @ 0 (0) ---

O que é interessante - eu tenho dois ambientes na mesma configuração do sistema - um na AWS e outra VM no VirtualBox. Ambos têm o Ubuntu 12.04 + Apache 2.2 + PHP 5.4.13, as configurações são as mesmas, mas o problema ocorre apenas no nó AWS. Alguma idéia?

    
por Krzysztof Księżyk 17.05.2013 / 15:42

1 resposta

4

Foi um problema com muito pouco valor definido para a opção max_input_time. Quando eu o aumento, o problema desapareceu. Esta mensagem de erro do PHP é muito enganadora.

    
por 17.05.2013 / 17:23