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 23 Novembro Autor Membros Pro Postado 23 Novembro 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 23 Novembro Consultores Postado 23 Novembro Está correto, o item 5 está ok.
Membros Pro HASA Postado 25 Novembro Autor Membros Pro Postado 25 Novembro 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 25 Novembro Consultores Postado 25 Novembro 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 26 Novembro Autor Membros Pro Postado 26 Novembro 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 26 Novembro Consultores Postado 26 Novembro 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 26 Novembro Consultores Postado 26 Novembro @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 27 Novembro Autor Membros Pro Postado 27 Novembro Boa tarde, obrigado, vou verificar e corrigir. att; HASA
Membros Pro HASA Postado 3 Dezembro Autor Membros Pro Postado 3 Dezembro Em 26/11/2024 at 13:28, Daniel InfoCotidiano disse: @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 - Boa tarde Daniel, veja a resposta do técnico, e ainda eu atualizei os fontes do acbr e vi que vcs atualizaram o acbrcomum.php e atualizei o meu projeto tbm, notei ao atualizar que meu projeto está com a estrutura MVC e já carrego no isso os css´s alguns js´s e eu retiro essa linha header('Content-Type: application/json; charset=UTF-8'); do arquivo acbrcomum.php porque se não o site todo vira texto. Não sei se isso influenciam na leitura dos arquivo .so, no mais o técnico de Linux respondeu: Todas estas bibliotecas já estavam instaladas, veja: install libxml2 A ler as listas de pacotes... Pronto A construir árvore de dependências... Pronto A ler a informação de estado... Pronto libxml2 is already the newest version (2.9.13+dfsg-1ubuntu0.4). 0 pacotes actualizados, 0 pacotes novos instalados, 0 a remover e 99 não actualizados. install libgtk2.0-0 A ler as listas de pacotes... Pronto A construir árvore de dependências... Pronto A ler a informação de estado... Pronto libgtk2.0-0 is already the newest version (2.24.33-2ubuntu2.1). 0 pacotes actualizados, 0 pacotes novos instalados, 0 a remover e 99 não actualizados. install ttf-mscorefonts-installer A ler as listas de pacotes... Pronto A construir árvore de dependências... Pronto A ler a informação de estado... Pronto ttf-mscorefonts-installer is already the newest version (3.8ubuntu2). 0 pacotes actualizados, 0 pacotes novos instalados, 0 a remover e 99 não actualizados. root@ds128564:~# apt install openssl A ler as listas de pacotes... Pronto A construir árvore de dependências... Pronto A ler a informação de estado... Pronto openssl is already the newest version (3.0.2-0ubuntu1.18). 0 pacotes actualizados, 0 pacotes novos instalados, 0 a remover e 99 não actualizados. install xauth A ler as listas de pacotes... Pronto A construir árvore de dependências... Pronto A ler a informação de estado... Pronto xauth is already the newest version (1:1.1-1build2). 0 pacotes actualizados, 0 pacotes novos instalados, 0 a remover e 99 não actualizados. install xvfb A ler as listas de pacotes... Pronto A construir árvore de dependências... Pronto A ler a informação de estado... Pronto xvfb is already the newest version (2:21.1.4-2ubuntu1.7~22.04.12). 0 pacotes actualizados, 0 pacotes novos instalados, 0 a remover e 99 não actualizados. Com relação ao ".so", localizei os mesmos em outro local: ls -lh /snap/gnome-42-2204/176/usr/lib/x86_64-linux-gnu/ | grep libxml lrwxrwxrwx 1 root root 17 fev 16 2024 libxml2.so -> libxml2.so.2.9.13 lrwxrwxrwx 1 root root 17 fev 16 2024 libxml2.so.2 -> libxml2.so.2.9.13 -rw-r--r-- 1 root root 1,9M mar 26 2024 libxml2.so.2.9.13 lrwxrwxrwx 1 root root 16 mar 24 2022 libxmlb.so.2 -> libxmlb.so.2.0.0 -rw-r--r-- 1 root root 167K mar 26 2024 libxmlb.so.2.0.0 Criei os symlink conforme sua instrução: ln -s /snap/gnome-42-2204/176/usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/x86_64-linux-gnu/libxml2.so ln -s /usr/lib/x86_64-linux-gnu/libssl3.so /usr/lib/x86_64-linux-gnu/libssl.so ln -s /snap/core22/1663/usr/lib/x86_64-linux-gnu/libcrypto.so.3 /usr/lib/x86_64-linux-gnu/libcrypto.so Fiz também aquela configuração do Legacy para o OpensSSL: openssl list -providers Providers: default name: OpenSSL Default Provider version: 3.0.2 status: active legacy name: OpenSSL Legacy Provider version: 3.0.2 status: active Reiniciei o Apache e o PHP E ao rodar a aplicação diz: "Ambiente gráfico não identificado" att; HASA
Consultores Daniel InfoCotidiano Postado 3 Dezembro Consultores Postado 3 Dezembro Boa noite qual distro esta utilizando? Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro HASA Postado 6 Dezembro Autor Membros Pro Postado 6 Dezembro Bom dia Daniel! PHP Version 8.1.2-1ubuntu2.19 Linux ds128564 5.15.0-97-generic #107-Ubuntu SMP Wed Feb 7 13:26:48 UTC 2024 x86_64 Att; HASA
Consultores Daniel InfoCotidiano Postado 6 Dezembro Consultores Postado 6 Dezembro Por favor rode o comando: cat /etc/os-release E nos passe as informacoes, muito obrigado Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro HASA Postado 9 Dezembro Autor Membros Pro Postado 9 Dezembro Boa tarde, segue: root@dsxxxxxx:~# cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.2 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.2 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy root@dsxxxxx:~# att; HASA
Consultores Daniel InfoCotidiano Postado 10 Dezembro Consultores Postado 10 Dezembro Bom dia ! Vou realizar alguns testes e te reporto. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Consultores Daniel InfoCotidiano Postado 10 Dezembro Consultores Postado 10 Dezembro @HASA vou pedir um enorme favor. Como temos o programa exemplo em comum. Pode por favor testar com o nosso exemplo NFe em PHP Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro HASA Postado 10 Dezembro Autor Membros Pro Postado 10 Dezembro Posso sim, já retorno. att; HASA
Recommended Posts