Central de Ajuda

Guia da Central de Ajuda

Erro em arquivos CGI: permissões, shebang, caminho e logs no cPanel

Scripts CGI podem retornar erro 500, “Premature end of script headers” ou não executar por permissão, interpretador, quebra de linha, cabeçalho HTTP ou recurso indisponível. CGI é tecnologia legada em muitos projetos; confirme se o plano e o servidor ainda habilitam o recurso antes de migrar um script antigo.

Checklist do arquivo

  • envie em modo texto adequado e use final de linha Unix (LF);
  • confirme o shebang na primeira linha, como #!/usr/bin/perl;
  • use permissão executável necessária, normalmente 755, nunca 777;
  • confirme proprietário da conta;
  • salve sem BOM antes do shebang;
  • retorne cabeçalho válido antes do corpo.

Exemplo mínimo em Perl

#!/usr/bin/perl
use strict;
use warnings;
print "Content-Type: text/plain\r\n\r\n";
print "CGI ativo\n";

Teste apenas em diretório permitido, como cgi-bin, conforme o ambiente. Remova o arquivo depois.

Diagnóstico

  1. Abra cPanel > Metrics > Errors.
  2. Consulte o error_log no horário exato.
  3. Execute o script por SSH com o mesmo usuário quando houver acesso.
  4. Verifique módulos/bibliotecas e caminhos absolutos.
  5. Teste um CGI mínimo para separar servidor de aplicação.

Mensagens frequentes

  • Permission denied: execute bit, diretório ou propriedade;
  • bad interpreter: shebang incorreto, CRLF ou interpretador ausente;
  • Premature end of headers: erro antes do cabeçalho ou saída inválida;
  • Can't locate module: dependência ausente no ambiente do usuário;
  • 500 após upload: modo de transferência ou permissão.

Quando modernizar o script

Se a aplicação depende de Perl antigo, módulos fora de suporte ou permissões amplas, planeje migração para um runtime mantido e um framework com gerenciamento de dependências. Preserve a interface e os dados, crie testes e migre em homologação; apenas trocar o shebang não corrige vulnerabilidades do código.

Não exponha mensagens de debug ao visitante. Registre detalhes em log e proteja segredos. Scripts CGI antigos devem ser revisados por vulnerabilidades, dependências abandonadas e validação de entrada.

Para permissões, consulte CHMOD seguro; para erro genérico, veja Erro 500.

Recursos relacionados

Continue com materiais e serviços relacionados ao tema deste guia.

Este guia resolveu sua dúvida? Seu retorno ajuda a priorizar as próximas revisões.
Atendimento técnico

Não encontrou o resultado esperado?

Abra um chamado e envie a mensagem de erro completa, o domínio ou serviço afetado, o horário do teste e capturas de tela sem senhas.