Web Apps vuodesta 2004.
500 Sisäinen Palvelinvirhe
…ja miten korjata se.
lyhyt vastaus: tämä on yleensä cgiscriptissä oleva käyttöoikeusvirhe, joka on helppo korjata. Siirry FTP client, tai sivuston filemanager, ja korosta tai napsauta hiiren kakkospainikkeella CGI script. Valitse sitten Ominaisuudet, tai käyttöoikeudet, tai “Chmod”, ja aseta se world-executable: that ‘ s0755, tai+rx, tai-rwxr-xr-x. Älä käytä 0777 (a+rwx tai-rwxrwxrwx). Ja cgi-bin-hakemistonne pitäisi myös olla 0755, ei 0777.
pitkä vastaus:kun käytät Perl CGI-komentosarjaa kuten FileChucker orUserBase, saatat nähdä selaimessasi”sisäisen Palvelinvirheen” viestin. Viestissä lukee yleensä myös somethinglike “tarkista lisätietoja palvelimen virhelokista.”Sinun pitäisi tehdä niin-virhelokiin painettu viesti kertoo usein, mikä ongelma on. Apache-virheloki, esimerkiksi isoften sijaitsee osoitteessa / var/log/apache /error_log tai/var/log/apache2 / error_log (orsometimes “error.kirjaudu”).
jos sinulla ei ole pääsyä virhelokiin, seuraavaksi yksinkertaisinta on tehdä skriptistä varmuuskopio, avata Alkuperäinen ja poistaa kaikki sen sisältö ja lisätä vain nämä 3 riviä tiedostoon:
#!/usr/bin/perlprint "Content-type: text/plain\n\n";print "testing...\n";
(Huomautus: Jos palvelin on Windows-järjestelmä, korvaa ensimmäinen rivi yläpuolella joko #!perl tai #!c:\path\to\perl.exe.)
yritä nyt uudelleen päästä sivulle selaimessasi. Jos se toimii (näet ” testaus…”koska sen ulostulo) niin tiedät, että palvelin on ainakin määritetty oikein käynnissä Perl CGI skriptejä. Jos se ei toimi, niin se voi olla ongelma on palvelimen kokoonpano, eikä cgiscript. (Oletko esimerkiksi varma, että sinulla on Perl asennettuna? Käytännössä kaikki UNIX / Linux / OS X-palvelimet tekevät niin, mutta Windows-palvelimet on yleensä asennettava manuaalisesti, ilmaisesta paketista kuten ActivePerl.)
olettaen, että palvelin on määritetty oikein CGI-skriptejä varten, ongelmasi voi olla yksi näistä yleisistä syistä palvelimen sisäiseen virheeseen:
skriptin ulkopuoliset ongelmat:
- kansioiden käyttöoikeudet: cgi-bin-hakemistosi pitäisi olla chmodded kuin 0755, ei 0777. Samoin jos käsikirjoitus on …/cgi-bin / foo / bar.CGI,foo directory ei saa olla maailman kirjoitettava (0777). Tämä johtuu siitä, että monet palvelimet kieltäytyvät suorittamasta CGI-komentosarjoja maailman kirjoitettavissa kansioissa varotoimena.
- tiedostojen käyttöoikeudet: myös itse CGI-skriptin on samoista syistä oltava 0755 eikä 0777.
- Siirtotilat: jos käytät FTP: tä CGI-komentosarjan siirtämiseen palvelimelle, FTP-ohjelmasi on todennäköisesti asetettu automaattiseen siirtotilaan; thatis, se yrittää selvittää, onko käyttää BINARY tai ASCII tilassa kysymättä. Mutta riippuen siitä, onko CGI script tuli aWindows tai UNIX system, ja onko se menossa Windows – tai UNIXsystem, saatat joutua manuaalisesti asettaa FTP-asiakas käyttää joko ASCIIOR BINARY-tilassa ennen siirtämistä CGI script. Kokeile yhtä ja toista.
- rivinloput: siirtomoodiongelman syy on itse asiassa toinen ongelma: erityyppiset käyttöjärjestelmät (nimittäin Windowsv: t. UNIX / Linux / everything) käytä erilaisia merkistökoodeja edustamaan riviloppuja. Jos palvelimesi on UNIX-palvelin, mutta muokkaat CGI-komentosarjaasi Windows-tietokoneessa tekstieditorilla, joka ei käytä UNIX-tyylisiä riviloppuja, se aiheuttaa ongelmia. Applications like GoLive ja Dreamweaver joskus väärin. Jopa sisäänrakennetut käyttäjät eivät voi olla samaa mieltä: WordPad (Ei sana) näyttää saavan sen oikein, kunenotepad sotkee sen. Kokeile siis avata & tallentamalla CGI-scriptiinillesi toinen tekstieditori ja lataamalla se palvelimelle uudelleen.
kirjoitusjärjestelmän sisäiset ongelmat:
- shebang-linja: CGI-komentosarjan ensimmäisellä rivillä on oltava thepath palvelimen Perl-binääriin. Useimmilla UNIX-palvelimilla tämä on vain #!/ usr/bin / perl tai joskus #!/usr / local/bin / perl ja voit aina suorittaa komennon “mikä perl” saadaksesi varmuuden. Ikkunapalvelimissa voit joskus päästä pälkähästä pelkällä #!perl mutta sinun on ehkä määriteltävä koko polku, kuten #!c:\path\to\perl.exe.
- todelliset komentosarjavirheet: on aina mahdollista, että Perl-koodissa itsessään on yksinkertaisesti virhe. Jos sinulla on ongelmia scriptyou ostettu koodattava Industries, tämä on epätodennäköistä, koska monet muut ihmiset ovat ostaneet saman tarkan käsikirjoituksen ja ovat käynnissä se justfine.
liittyvät ongelmat
- toinen yleinen ongelma CGI-skripteissä on skriptien otsikkovirhe.
Leave a Reply