[RESOLVIDO] Erro ao gerar o arquivo PDF, contacte o suporte no ambiente de produção

Boa noite a todos.
Tenho uma aplicação consulta simples, que usa recursos de exportação em PDF do próprio Scriptcase (botão).
Em desenvolvimento, funciona perfeitamente, mas, quando publico no meu provedor Linux, ele dá o seguinte erro:
“Erro ao gerar o arquivo PDF, contacte o suporte.”

E em qualquer outro tipo de exportação ele aceita normalmente, exceto o PDF.

Já tentei atribuir permissão na pasta de terceiros, execução no php.ini, disable_functions no php.ini e mesmo assim continua dando erro.
E o wkhtmltopdf está instalado no ambiente de produção.
O mais estranho é que o SC de desenvolvimento e o de produção estão na mesma máquina.

Alguém pode me auxiliar?
Cordialmente,
Vanius

@yuri
@vaniusto
Se for o deban 11 ou 12.
Copie os executáveis da pasta buster para pasta linux-amd64 e dê permissão de execução e a situação será resolvida.
Vai achar estas pastas em /prod/third/wkhtmltopdf
Infelizmente a Netmake ainda não criou as pasta com executável para o debian 11 e 12.
Ali somente tem para o debina 9 e 10.

4 Curtidas

Boa tarde @buhlerax.
Uso o Debian 12.5.

Copiei a arquivo wkhtmltopdf-amd64 e dei a permissão chmod +x nele.
O sistema continua não criando o PDF.

Por curiosidade, testei via terminal executar o comando ./wkhtmltopdf-amd64 e o resultado foi:

error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

Mas o arquivo que existia (renomeei para _wkhtmltopdf-amd64), ao ser executado mostra

You need to specify at least one input file, and exactly one output file
Use - for stdin or stdout

Name:
wkhtmltopdf 0.12.4 (with patched qt)

Synopsis:
wkhtmltopdf [GLOBAL OPTION]… [OBJECT]…

Document objects:
wkhtmltopdf is able to put several objects into the output file, an object is
either a single webpage, a cover webpage or a table of content. The objects
are put into the output document in the order they are specified on the
command line, options can be specified on a per object basis or in the global
options area. Options from the Global Options section can only be placed in
the global options area

O que posso fazer?
Agradeço desde já.

@vaniusto @yuri_esteves
Tente instalar a libssl3 e o wkhtmltopdf-> apt-get install libssl3 libssl-dev wkhtmltopdf
Está instalação apesar de não usada pelo Scritpcase irá colocar todas as dependências necessárias.
E depois tente gerar com os dois arquivos. Veja qual gera com sucesso.

PS: se mesmo assim não der certo. Execute como root
cd /usr/lib/x86_64-linux-gnu
ln -s libssl.so.3 libssl.so.1.1

Farei isso.

@buhlerax, o engraçado é q a maquina do ambiente de DEV (SC) é a mesma máquina onde o sistema está em PROD.
Deveria funcionar tanto rodando pelo SC quanto rodando pela aplicação.

So se seu prod não foi completo

@yuri_esteves @vaniusto
Instalei aqui o Debian12 e realmente os binários que vem com o Scriptcase não funcionam.
Tive que fazer o seguinte procedimento que para mim deu certo
apt-get install wkhtmltopdf
Então peguei o wkhtmltopdf que a distro instalou e subistitui no meu Scriptcase IDE e em produção:
cd xxxxxxxxx/prod/third/wkhtmltopdf/linux-amd64
cp -rvp /usr/bin/wkhtmltopdf wkhtmltopdf-amd64
Foi o que funcionou aqui.
@yuri_esteves mais uma vez digo que tem que se criar uma pasta com os binários do wkhtmltopdf para o bullseye e bookworm como foi feito no stretch e buster.

PS: Isto deve ser feito urgente. Porque se mando atualizar o Scriptcase ele apaga o binário wkhtmltopdf da distro dentro pasta do scriptcase IDE ou produção. Consequentemente volta a dar pau.
Enviei vídeo demonstrando o bug e a correção que fiz no bugs@netmake.com.br e feedback@netmake.com.br

2 Curtidas

@vaniusto
Com o procedimento que mostrei no vídeo deu certo?

Bom dia.
Ainda não. Ao dar o comando para instalar, o apt-get exige a instalação de mais 450Mb de bibliotecas extras.
Este ambiente tem mais de 120 sites rodando. Acredito q não interferirá em nada mas roda um medinho.

Estou testando outras possibilidades antes de fazer esta sua sugestão pois como a maquina é a mesma para o ambiente Scriptcase e o ambiente de PROD, e no Scriptcase funciona, deveria funcionar em prod também.

Caso não consgia resolver isso até amanhã, sabado eu farei da sua forma. E te aviso sobre o resultado.

Se está usando o instalador do Scriptcase está explicado porque funciona na IDE.
Ele monta um ambiente dentro do seu servidor onde ele tem suas próprias .so prontas.
Mas na instalação manual ou produção ele não tem estes .so.
Você fica dependendo do .so da distro.
Eu aqui uso a instalação manual. Nunca gostei do instalador.
Então sou totalmente dependente do ambiente da distro.

Prezados, @buhlerax, @vaniusto

implementamos o suporte a essas distribuições na release 9.10.18.

Versão disponível para download ou atualização.

@yuri_esteves
Obrigado. Vou testar.

@yuri_esteves ainda está com problema.
A pasta bullseye e bookworn foram acrescentadas.
Mas ele ainda procura o executável na pasta:
…/prod/third/wkhtmltopdf/linux-amd64/wkhtmltopdf-amd64
Logo, dá erro na geração do pdf.
Mas se copio o executável da pasta:
…/prod/third/wkhtmltopdf/bookworm/wkhtmltopdf-amd64
para …/prod/third/wkhtmltopdf/linux-amd64/wkhtmltopdf-amd64
Funciona a geração de pdf.
Ou seja, Não esta resolvido.

1 Curtida

Prezado, @buhlerax

Por gentileza, execute o comando uname-a na sua maquina linux e me informe o resultado do comando.

uname -a
Linux meusite.com.br 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux

Copiando o executável da pasta:
…/prod/third/wkhtmltopdf/bookworm/
para a pasta
…/prod/third/wkhtmltopdf/linux-amd64/
funcionou em PROD.
Grato @buhlerax.

E aguardarei a versão 100% corrigida, @yuri_esteves .

@yuri_esteves
root@servidor:~# uname -a
Linux servidor 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux

root@servidor:~# cat /etc/debian_version
12.5

root@servidor:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

Prezados, @vaniusto

O arquivo no diretório “bookworm” , referente ao Debian 12, está com permissão?

@yuri_esteves
prod/third/wkhtmltopdf/bookworm# ls -l -h
total 44M
-rwxrwxrwx 1 www-data www-data 44M abr 24 04:50 wkhtmltopdf-amd64

Está com permissão de execução como esperado.

1 Curtida

Exatamente como o do @buhlerax.