CGI-skripteistä

Sisällysluettelo

CGI-skriptien käyttö

Tiedostojen nimeäminen

Tiedostojen oikeuksien asetus

Tiedostojen ja hakemistojen omistusoikeudet

Ohjelmien sijainti

Virheilmoitus: Internal Server Error

 

CGI-skriptien käyttö

Voit käyttää Nebulan palvelimella kaikkia yleisimpiä CGI-skriptejä. Tuemme esimerkiksi perlillä, pythonilla, SH:lla jne. ohjelmoituja ohjelmanpätkiä. Asennettaessa on kuitenkin otettava huomioon seuraavat ohjeet:

Tiedostojen sijoitus hakemistorakenteeseen

Emme rajoita CGI-skriptien käyttöä yhteen hakemistoon. Voit laittaa ne mihin haluat, suositeltavaa on tosin tehdä oma cgi-hakemisto, jossa kaikki skriptit ovat. Älä kuitenkaan nimeä hakemistoa cgi-bin -nimiseksi, sillä web-serveriohjelmisto ei välttämättä silloin löydä niitä (mikä tahansa muu hyväksyttävä hakemistonimi käy, esim. skiptit).

 

Tiedostojen nimeäminen

  • CGI-skriptit: Tallenna tiedosto .cgi tai .pl -päätteellä. Myös perl-skriptit voivat hyvin olla .cgi, .pl on vain yhteensopivuussyistä tuettu

  • PHP-skriptit: Tallenna tiedosto .php -päätteellä. Lue lisätietoa PHP-skriptien käytöstä PHP-ohjeiden alta

Tiedostojen oikeuksien asetus

  • PHP: Ei vaadi toimenpiteitä

  • CGI-skriptit: Skriptille on annettava +x, eli Execute -suoritusoikeus. (Unix-ihmisille riittänee tiedoksi 755). Tämä oikeus annetaan vain omalle käyttäjätunnukselle (User), muille (Group ja Other) sitä ei tarvitse antaa. Lähes kaikki FTP-ohjelmat tukevat oikeuksien asetusta suoraan ohjelmasta käsin. Mikäli ei, ota pääteyhteys (katso yleisohje), mene kyseiseen hakemistoon cd-komennolla ja kirjoita chmod u+rx skripti.cgi

Huom: Yleisin virhe, joka aiheuttaa Internal server errorin on se, että hakemistolle tai tiedostoille on annettu liikaa oikeuksia. Kirjoitusoikeudet tulee antaa vain itselle (user), ei ryhmälle (group) tai muille (other). Tämä koskee myös hakemistoa, jossa ohjelmatiedostot sijaitsevat!

 

Tiedostojen ja hakemistojen omistusoikeudet

Kaikki CGI-skriptit suoritetaan sinun omalla käyttäjätunnuksella ja -ryhmällä, joten muille kuin itselle ei tarvitse antaa suoritus- tai kirjoitusoikeuksia. Jos annat tiedostolle liikaa oikeuksia (esim 777, eli kaikille kaikki oikeudet) web-serveri kieltäytyy ajamasta skriptiä ja palauttaa virheilmoituksen.

 

Ohjelmien sijainti

  • Perl-tulkki löytyy vakiosijainnistaan /usr/bin/perl

  • Sendmail löytyy myös vakiosijainnistaan /usr/sbin/sendmail

  • Väliaikaistiedostot säilytetään /tmp -hakemistossa ja poistetaan käytön jälkeen skriptistä

 

Virheilmoitus: Internal Server Error

Internal Server Error -viesti viittaa CGI-skriptin virheelliseen toimintaan. Suurimmassa osassa tapauksia syynä on virheellisesti asetetut oikeudet skriptitiedostolle ja/tai hakemistolle, jossa se sijaitsee.

Skriptillä ja hakemistolla, jossa se on, on oltava oikeudet niin, että vain käyttäjällä itsellään on siihen kirjoitusoikeudet (unix-oikeudet 755). Jos kirjoitusoikeuksia on myös ryhmällä (group) tai muilla (other), palvelin kieltäytyy ajamasta skriptiä ja palauttaa Internal server error -viestin.

Virheilmoituksen voi myös aiheuttaa puutteellinen sisältötyyppi. CGI-skriptin tulee aluksi ilmoittaa palvelimelle tuotetun datan tyyppi Content-type: -otsikolla ja sitä seuraavalla tyypillä esim (text/html). Näiden lisäksi tarvitaan yksi tyhjä rivi ennen varsinaista tulostetta.

Joskus myös virheellisesti suoritettu tiedostonsiirto voi rikkoa skriptin. Varmista, että FTP-ohjelmasi lähettää tiedoston ASCII-tilassa normaalin binäärisiirron sijaan.