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
Recommended Posts