Webapper Siden 2004.

500 Intern Serverfeil

…og hvordan å fikse det.

det korte svaret: dette er vanligvis en tillatelsesfeil på CGIscript, som er lett å fikse. Gå TIL FTP-klienten, eller nettstedet filemanager, og markere ELLER høyreklikk PÅ cgi script. Velg deretter egenskaper, Eller Tillatelser, eller “Chmod”, og sett den til world-executable: thats0755, eller a + rx, eller-rwxr-xr-x. ikke bruk 0777 (a + rwx eller-rwxrwxrwx). Og cgi-bin-katalogen selv bør også være 0755, ikke 0777.

det lange svaret:når du kjører Et Perl CGI-skript som FileChucker orUserBase, kan du se meldingen “Intern Serverfeil”i nettleseren din. Meldingen vil vanligvis også si noe som “vennligst sjekk serverens feillogg for mer informasjon.”Du burde gjøre det-meldingen som skrives ut til feilloggen, vil ofte fortelle deg nøyaktig hva problemet er. Apache feilloggen, for eksempel, er ofte plassert på/var/log /apache/error_log eller/var/log / apache2 / error_log (ornoen ganger “feil.logge”).

hvis du ikke har tilgang til feilloggen, er det neste enkleste å gjøre ålag en sikkerhetskopi av skriptet, åpne originalen og slett alt innhold, og legg bare disse 3 linjene til filen:

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

(Merk: hvis serveren Er Et Windows-system, erstatt den første linjen ovenformed enten #!perl eller #!c:\path\to\perl.exe.)

prøv nå å få tilgang til siden i nettleseren din igjen. Hvis det fungerer (du ser ” testing…”som sin utgang) så vet du at serveren din er minst konfigurertriktig for å kjøre Perl CGI-skript. Hvis det ikke virker, kan det hende at problemet er i serverkonfigurasjonen, i stedet for Med CGIscript. (For eksempel, er du sikker på at Du faktisk Har Perl installert? Nesten ALLE UNIX / Linux / OS X-servere gjør det, Men Windows-servere må vanligvishar det installert manuelt, fra en gratis pakke som ActivePerl.)

Forutsatt at serveren din er riktig konfigurert for å kjøre CGI-skript, kan problemet ditt være en av disse vanlige årsakene Til Den Interne Serverfeilen:

Problemer utenfor skriptet:

  1. Katalog tillatelser: din cgi-bin-katalog skal være chmodded som 0755, ikke 0777. Tilsvarende hvis skriptet ditt er kl …/ cgi-bin / foo / bar.cgi, foo-katalogen må ikke være world-writable (0777). Dette skyldes at mange servere vil nekte å utføre CGI-skript i world-writabledirectories, som en sikkerhetsforanstaltning.
  2. filtillatelser: CGI-skriptet ditt selv må også være 0755 og ikke 0777, av samme grunner.
  3. Overføringsmoduser: hvis DU bruker FTP til å overføre cgi-skriptet til yourserver, ER FTP-klienten sannsynligvis satt TIL automatisk overføringsmodus; det er, det vil prøve å finne ut om DU skal bruke BINÆR eller ASCII-modus utenspør deg. Men avhengig av OM CGI-skriptet ditt kom fra aWindows eller UNIX-systemet, og om Det skal til Et Windows eller UNIXsystem, må du kanskje manuelt sette FTP-klienten til å bruke Enten ASCIIOR BINÆR modus før du overfører CGI-skriptet. Prøv den ene og den andre.
  4. Linjeendringer: årsaken til overføringsmodusproblemet er faktisk et annet problem i seg selv: forskjellige Typer Operativsystemer (nemlig Windowsvs. UNIX / Linux / alt) bruker forskjellige tegnkoder for å representerelinjeendringer. Hvis serveren din er EN UNIX-server, men du redigerer CGI-skriptet DITT på En Windows-datamaskin med en tekstredigerer som ikke bruker UNIX – stil linjeendringer, vil det føre til problemer. Applicationslike GoLive Og Dreamweaver noen ganger får dette galt. Selv innebygde redaktører kan ikke være enige: WordPad (ikke Word) synes å få det riktig whileNotepad ødelegger det. Så prøv å åpne & lagre CGI-skripteti en annen tekstredigerer og last den opp til serveren igjen.

Problemer i skriptet:

  1. shebanglinjen: den første linjen I ET cgi-skript må inneholdevei til perl-binæret på serveren. På DE FLESTE UNIX-servere thisis bare #!/ usr / bin / perl eller noen ganger #!/ usr / local / bin / perl og du kankjør alltid kommandoen “hvilken perl” for å finne ut sikkert. På Windowsservers, kan du noen ganger komme unna med bare å bruke #!perl men du mayneed å spesifisere hele banen som #!c:\path\to\perl.exe.
  2. Faktiske skriptfeil: det er alltid mulig at det bare er en feil i Perl-koden selv. Hvis du har problemer med en scriptyou kjøpt Fra Encodable Industries, er dette usannsynlig siden manyother folk har kjøpt samme skript og kjører det justfine.

Relaterte Problemer

  1. Et annet vanlig problem med CGI-skript erfor tidlig slutt på skriptoverskriftsfeil.

Leave a Reply