aplicativos da Web desde 2004.

500 Erro Interno Do Servidor

…e como consertar isso.

a resposta curta: geralmente é um erro de permissões no seu CGIscript, que é fácil de corrigir. Vá para o seu cliente FTP ou para o seu site filemanager e realce ou clique com o botão direito do mouse no script CGI. Em seguida, chooseProperties, ou permissões, ou “Chmod”, e configurá-lo para World-executável: that’s0755, ou a+rx, ou-rwxr-xr-X. Não use 0777 (a+rwx ou-rwxrwxrwx). E seu próprio diretório cgi-bin também deve ser 0755, não 0777.

a resposta longa:ao executar um script Perl CGI como FileChucker ouuserbase, você pode ver a mensagem “Erro interno do servidor” em seu navegador. A mensagem geralmente também diz algocomo ” verifique o log de erros do servidor para obter mais informações.”Você deve fazer isso – a mensagem impressa no log de erros geralmente lhe dirá exatamente qual é o problema. O log de erros do Apache, por exemplo, está frequentemente localizado em/var/log / apache / error_log ou/var/log/apache2 / error_log (ouàs vezes “erro.log”).

Se você não tem acesso ao log de erro, a próxima coisa mais simples a fazer é tomake uma cópia de backup do script, em seguida, abra o original e elimine todos itscontents, e adicionar apenas estas 3 linhas para o arquivo:

#!/usr/bin/perlprint "Content-type: text/plain\n\n";print "testing...\n";

(Nota: se o servidor for um sistema Windows, em seguida, substituir a primeira linha abovewith quer #!perl ou #!c:\path\to\perl.exe.)

agora tente acessar a Página no seu navegador novamente. Se funcionar (você vê ” teste…”como sua saída) então você sabe que seu servidor é pelo menos configuredproperly para executar scripts Perl CGI. Se não funcionar, então isso pode significar que o problema está na configuração do servidor, em vez de com seu CGIscript. (Por exemplo, você tem certeza de que realmente tem o Perl instalado? Praticamente todos os servidores UNIX / Linux / OS X fazem, mas os servidores Windows geralmente precisam ter instalado manualmente, a partir de um pacote gratuito como o ActivePerl.)

Supondo que seu servidor está configurado corretamente para executar scripts CGI,seu problema pode ser uma dessas causas mais comuns para a Erro Interno do Servidor:

Problemas fora do script:

  1. permissões de Diretório: seu diretório cgi-bin deve ser chmodded como 0755, não 0777. Da mesma forma, se o seu script estiver em …/ cgi-bin / foo / bar.cgi, o diretório foo não deve ser gravável no mundo (0777). Isso ocorre porque muitos servidores se recusarão a executar scripts CGI dentro do World-writabledirectories, como precaução de segurança.
  2. permissões de Arquivo: seu próprio script CGI também deve ser 0755 e não 0777,pelos mesmos motivos.
  3. modos de Transferência: se você estiver usando FTP para transferir o script CGI para o yourserver, seu cliente FTP provavelmente estará definido para o modo de transferência automática; é, ele tentará descobrir se deve usar o modo binário ou ASCII sem perguntar a você. Mas dependendo se o seu script CGI veio de aWindows ou sistema UNIX, e se ele está indo para um Windows ou UNIXsystem, você pode precisar definir manualmente o seu cliente FTP para usar qualquer modo binário ASCIIor antes de transferir o seu script CGI. Tente um e entãoO outro.
  4. terminações de linha: a causa do problema do modo de transferência é na verdade outraproblema em si: diferentes tipos de sistemas operacionais (ou seja, Windowsvs. UNIX / Linux / tudo) use códigos de caracteres diferentes para representar terminações de linha. Se o seu servidor é um servidor UNIX, mas você está editandoseu script CGI em um computador Windows com um editor de texto que não usa terminações de linha no estilo UNIX, isso causará problemas. Aplicaçõescomo GoLive e Dreamweaver às vezes erram. Mesmo built-ineditors não pode concordar: WordPad (Não palavra) parece obtê-lo direito whileNotepad estraga tudo. Portanto, tente abrir & salvando seu script CGI em um editor de texto diferente e enviando-o para o servidor novamente.

problemas dentro do script:

  1. a linha shebang: a primeira linha de um script CGI deve conter thepath para o binário Perl no servidor. Na maioria dos servidores UNIX, isso é apenas #!/ usr / bin / perl ou às vezes #!/ usr / local / bin / perl e você podesempre execute o comando “which perl” para descobrir com certeza. Em Windowsservers, às vezes você pode se safar apenas usando #!perl, mas você podePrecisa especificar o caminho completo como #!c:\path\to\perl.exe.
  2. erros de script reais: é sempre possível que haja simplesmente um erro no próprio código Perl. Se você está tendo problemas com um scriptvocê comprou da Encodable Industries, isso é improvável, já que muitosoutras pessoas compraram o mesmo script exato e estão executando-o justfine.

problemas relacionados

  1. outro problema comum com scripts CGI é o fim prematuro do script headerserror.

Leave a Reply