Membros Pro HASA Postado 31 Outubro Membros Pro Postado 31 Outubro - Boa tarde, amigos estou hospedando meu sistema em um servidor LINUX e pessoal lá da nuvem é super gente fina, eu não sei nada de Linux e estou homologando a acbrLib em PHP, no local host windows/64 as dlls até onde testei estão funcionando bem, então resolvi enviar os fontes para a nuvem e testar lá, enviei essa dica: https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html que aparentemente foi feita corretamente porque na primeira tentativa de acessar os arquivos *.so dava um tipo de erro e após essa dica mudou o erro: Serviço não disponível O servidor está temporariamente impossibilitado de atender sua solicitação devido a tempo de inatividade para manutenção ou problemas de capacidade. Tente novamente mais tarde. Isso na tela e no servidor linux que possue um log gera esse erro: [Thu Oct 31 13:45:14.291108 2024] [proxy_fcgi:error] [pid 2569713:tid 139719530747456] [client 177.81.180.211:61013] AH01067: Failed to read FastCGI header, referer: https://... [Thu Oct 31 13:45:14.291214 2024] [proxy_fcgi:error] [pid 2569713:tid 139719530747456] (104)Connection reset by peer: [client 177.81.180.211:61013] AH01075: Error dispatching request to : , referer: https://... Se algum colega poder dar uma dica para SERVIDOR LINUX do porque não consigo ler as acbrlib´s agradeço. att; HASA
Fundadores Daniel Simoes Postado 1 Novembro Fundadores Postado 1 Novembro Me parece que as permissões não estão configuradas corretamente... Mas somente acessando o Servidor para saber... Eu não recomendo você subir um serviço em uma tecnologia que você ou sua empresa não domine... Você poderia contratar algum Free-lancer de TI para te ajudar com isso... Mas subir um Servidor sem conhecimento é um risco .. pode expor o Servidor a sérios problemas de segurança 2 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro HASA Postado 1 Novembro Autor Membros Pro Postado 1 Novembro - Bom dia obrigado. att; HASA
Membros Pro HASA Postado 1 Novembro Autor Membros Pro Postado 1 Novembro Olá Daniel, descobri que o erro da exatamente aqui: $ffi = FFI::cdef( file_get_contents( $importsPath ), $dllPath ); As permissões que citou tem haver pq os caminhas e nomes dos arquivos estão certinho, inclusive verifiquei a grafia por causa do MIUSCULO e MINUSCULO e tudo certo também. Verificamos as permissões de pasta de arquivo, tudo ok. o erro persiste: Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Apache/2.4.52 (Ubuntu) Server at sxxxxx.xxxxx.com Port 443 Qualquer dica dos colegas é bem vinda. att; HASA 7 horas atrás, Daniel Simoes disse: Me parece que as permissões não estão configuradas corretamente... Mas somente acessando o Servidor para saber... Eu não recomendo você subir um serviço em uma tecnologia que você ou sua empresa não domine... Você poderia contratar algum Free-lancer de TI para te ajudar com isso... Mas subir um Servidor sem conhecimento é um risco .. pode expor o Servidor a sérios problemas de segurança
Consultores Renato Rubinho Postado 2 Novembro Consultores Postado 2 Novembro Em 01/11/2024 at 08:23, Daniel Simoes disse: Eu não recomendo você subir um serviço em uma tecnologia que você ou sua empresa não domine... Primeiramente, gostaria de frisar a sugestão de procurar um suporte especializado para suporte ao cenário que você não domina. Em 01/11/2024 at 16:14, HASA disse: erro da exatamente aqui: $ffi = FFI::cdef( file_get_contents( $importsPath ), $dllPath ); Temos relatos de problemas com servidores SEM ambiente gráfico ao instânciar o FFI, pois as bibliotecas do ACBr ainda possuem dependência do ambiente gráfico devido aos motores geradores de relatórios. Caso o seu servidor NÃO possua ambiente gráfico: 1. Será necessário instalar um emulador tipo o Xvfb 2. No PHP, para funcionar o acesso ao ambiente gráfico emulado, é necessário adicionar a linha a seguir, antes de instanciar a Lib. putenv("DISPLAY=:1") 2.1. Segue função, experimental, para identificar se existe ambiente gráfico emulado ( verificaAmbienteGrafico ) e a função CarregaContents() atualizada com o tratamento para o cenário SEM ambiente gráfico. function verificaAmbienteGrafico() { $verificaX11 = shell_exec('pgrep Xorg 2>&1') !== null; $displayX11 = getenv('DISPLAY') !== false; if ($verificaX11 || $displayX11) { // Ambiente grafico X11 return 1; } else { $verificaXVFB = shell_exec('pgrep Xvfb 2>&1') !== null; $displayXVFB = strpos(getenv('DISPLAY'), ':99') !== false; if ($verificaXVFB || $displayXVFB) { // Emulador XVFB return 2; } else { // Sem ambiente grafico return 0; } } } function CarregaContents($importsPath, $dllPath) { $modoGrafico = verificaAmbienteGrafico(); if ( $modoGrafico === 0) { throw new Exception("Ambiente gráfico não identificado"); return -10; } if ($modoGrafico === 2){ putenv("DISPLAY=:1"); } $ffi = FFI::cdef( file_get_contents($importsPath), $dllPath ); return $ffi; } 3. Favor atualizar as funções do item 2.1 na ACBrComum.php e reportar o resultado 1
Membros Pro HASA Postado 4 Novembro Autor Membros Pro Postado 4 Novembro Bom dia recebi o retorno: Ambiente gráfico não identificado HASA
Consultores Solution Renato Rubinho Postado 4 Novembro Consultores Solution Postado 4 Novembro Em 02/11/2024 at 19:54, Renato Rubinho disse: Será necessário instalar um emulador tipo o Xvfb Provavelmente falta instalar o emulador de ambiente gráfico. Segue link do vídeo onde foi abordado esse assunto. https://acbr.nutror.com/curso/d484b944c7f91eb67c5e395df79d03f1e184fac5/aula/8991923 1
Membros Pro HASA Postado 13 Novembro Autor Membros Pro Postado 13 Novembro Boa tarde, está instalado, resposta do técnico: Até onde entendo, a interface gráfica ("X") não vai ficar rodando, a menos que tenha algo a usando no momento (por exemplo uma tela de login -- que alias ficaria pública na internet), um processo que use a interface, como o Firefox, etc.). Assim, este código abaixo está errado (na minha opinião). Ele não está verificando se existe o ambiente disponível e sim se ele está rodando no momento (o grep do linux (este pgrep do seu código) apenas mostra processos que estão ativos no momento, como o gerenciador de tarefas do Windows). Pesquisando no forum vi algo sobre LEGACY pode ter haver com meu caso? att; HASA
Consultores Renato Rubinho Postado 13 Novembro Consultores Postado 13 Novembro 2 horas atrás, HASA disse: Assim, este código abaixo está errado (na minha opinião). Você tem o cenário e os fontes para testar. Se está errado, remova pois como eu disse acima, é uma função experimental, a ideia é verificar automaticamente se precisa ou não do código PHP para setar o display. Teste com a função conforme abaixo, apenas setando o display como 99 ao invés de 1. function CarregaContents($importsPath, $dllPath) { putenv("DISPLAY=:99"); $ffi = FFI::cdef( file_get_contents($importsPath), $dllPath ); return $ffi; } 1.Tenha certeza que o servidor NÃO possui ambiente gráfico 2. Tenha certeza que o emulador xvfb está instalado 3. Confirme se está iniciando o emulador xvfb 4. Teste uma página qualquer para verificar se o servidor de internet e o PHP estão funcionando 5. Verifique no phpinfo se o FFI está habilitado
Membros Pro HASA Postado Sábado as 14:29 Autor Membros Pro Postado Sábado as 14:29 Bom dia, resultado da opção 5 FFI FFI support enabled Directive Local Value Master Value ffi.enable On On ffi.preload no value no value att; HASA
Consultores Renato Rubinho Postado Sábado as 16:52 Consultores Postado Sábado as 16:52 Está correto, o item 5 está ok.
Membros Pro HASA Postado Segunda as 16:38 Autor Membros Pro Postado Segunda as 16:38 Boa tarde, Renato tem uma dica de como posso pelo app WinSCP em meu pc testar com certeza que o emulador xvfb está instalado ? att; HASA
Consultores Renato Rubinho Postado Segunda as 21:39 Consultores Postado Segunda as 21:39 Não sei lhe dizer. Caso lhe ajude, no ambiente que montamos de teste com Ubuntu Console, bastaram os comandos a seguir para instalar: sudo apt update sudo apt install xvfb ...e para executar o comando a seguir, lembrando que se o servidor for reinciado, este comando deve ser executado novamente, mas você pode configurar alguma opção para executá-lo automaticamente na inicialização. Xvfb :99 -screen 0 1280x1024x16 & Após isso, com o código a seguir a bilbioteca foi carregada via FFI. Em 13/11/2024 at 16:48, Renato Rubinho disse: Teste com a função conforme abaixo, apenas setando o display como 99 ao invés de 1. function CarregaContents($importsPath, $dllPath) { putenv("DISPLAY=:99"); $ffi = FFI::cdef( file_get_contents($importsPath), $dllPath ); return $ffi; }
Membros Pro HASA Postado Terça as 12:46 Autor Membros Pro Postado Terça as 12:46 Bom dia, veja a imagem: Ou seja o Xvfb consigui fazer rodar, mas as lib´s apresentaram alguns erros registrados pelo kernel: [nov25 12:55] traps: php-fpm8.1[3198722] general protection fault ip:7f9974662519 sp:7ffef1c10c28 error:0 in libacbrnfe64.so[7f9974400000+764000] [nov25 12:59] php-fpm8.1[3199101]: segfault at 0 ip 00007f99772c67bc sp 00007ffef1c10860 error 4 in libglib-2.0.so.0.7200.4 (deleted)[7f9977280000+8f000] [ +0,000052] Code: 45 88 00 00 00 00 48 89 85 60 ff ff ff 90 49 8b 4d 00 48 63 d3 c7 45 b8 00 00 00 00 4c 8d 14 d5 00 00 00 00 4c 01 d1 4c 8b 31 <41> 0f b6 06 3c 2d 0f 84 48 03 00 00 4d 8b 77 40 41 f6 47 38 08 be [nov25 13:03] php-fpm8.1[3199145]: segfault at 0 ip 00007f99772c67bc sp 00007ffef1c10860 error 4 in libglib-2.0.so.0.7200.4 (deleted)[7f9977280000+8f000] [ +0,000038] Code: 45 88 00 00 00 00 48 89 85 60 ff ff ff 90 49 8b 4d 00 48 63 d3 c7 45 b8 00 00 00 00 4c 8d 14 d5 00 00 00 00 4c 01 d1 4c 8b 31 <41> 0f b6 06 3c 2d 0f 84 48 03 00 00 4d 8b 77 40 41 f6 47 38 08 be [ +11,412780] php-fpm8.1[3199109]: segfault at 0 ip 00007f99772c67bc sp 00007ffef1c10860 error 4 in libglib-2.0.so.0.7200.4 (deleted)[7f9977280000+8f000] [ +0,000030] Code: 45 88 00 00 00 00 48 89 85 60 ff ff ff 90 49 8b 4d 00 48 63 d3 c7 45 b8 00 00 00 00 4c 8d 14 d5 00 00 00 00 4c 01 d1 4c 8b 31 <41> 0f b6 06 3c 2d 0f 84 48 03 00 00 4d 8b 77 40 41 f6 47 38 08 be [nov25 13:40] php-fpm8.1[3199590]: segfault at 0 ip 00007f99772c67bc sp 00007ffef1c10860 error 4 in libglib-2.0.so.0.7200.4 (deleted)[7f9977280000+8f000] [ +0,000037] Code: 45 88 00 00 00 00 48 89 85 60 ff ff ff 90 49 8b 4d 00 48 63 d3 c7 45 b8 00 00 00 00 4c 8d 14 d5 00 00 00 00 4c 01 d1 4c 8b 31 <41> 0f b6 06 3c 2d 0f 84 48 03 00 00 4d 8b 77 40 41 f6 47 38 08 be att; HASA
Consultores Renato Rubinho Postado Terça as 15:44 Consultores Postado Terça as 15:44 Confirme se instalou a OpenSSL, LibXml2 e criou os links simbólicos. Veja se este vídeo do @Daniel InfoCotidiano ajuda. 1
Consultores Daniel InfoCotidiano Postado Terça as 16:28 Consultores Postado Terça as 16:28 @HASA apenas complementando que o @Renato Rubinho citou acima. OpenSSL se for versão 3.X, vc deve configurar como legacy: (para saber como configurar, clique aqui ) Atenção ao criar o arquivo simbólico, veja se existe o arquivo libxml2.so.2 na pasta /usr/lib/ Para criar o link simbolico: ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/x86_64-linux-gnu/libxml2.so Instalar todas dependências necessárias: xvfb, xauth, openssl, libxml2, libgtk2.0-0, ttf-mscorefonts-installer Precisa se atentar para permissao nas pastas para leitura e escrita 1 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro HASA Postado Há 11 horas Autor Membros Pro Postado Há 11 horas Boa tarde, obrigado, vou verificar e corrigir. att; HASA
Recommended Posts