Apache HTTP-palvelin

CGI, SSI ja PHP-tuen käyttöönotto Apache-palvelimella

CGI:n käyttöönotto Apache-palvelimella

CGI-toiminnon testausta luo palvelimelle perl-kielellä toteutettu skriptitiedosto hello.pl ja tallenna se tiedostoon skriptialiaksella merkittyyn kansioon cgi-bin:


#!c:/Perl/bin/perl 
print "Content-type: text/html\n\n"; 
print "Hello, world!\n"; 

Kun pyydät palvelinta lataamaan sivun osoitteesta http://localhost/cgi-bin/hello.pl, pitäisi sinun nähdä tervehdys "Hello, World". Sen sijaan jos kopioit saman tiedoston CGI-BIN kansion ulkopuolelle ja yrität suorittaa sen, palvelin palauttaa skriptin sisällön tulkitsematta sitä. Tämä johtuu ScriptAlias-direktiivin käytöstä cgi-bin-kansion määrittelyssä.

Jos CGI/perl-skriptejä halutaan suorittaa myös muualla kuin cgi-bin kansiossa (ja muissa ScriptAlias-oikeudet saaneissa kansioissa), on httpd.conf tiedostoon suoritettava muutama muutos. Mikäli muutosten halutaan olevan kaikkien palveluiden käytössä kannattaa ne suorittaa pääpalvelun tasolla, muutoin ne kannattaa sijoittaa virtuaalipalveluiden tasolle.

Päätasolla tapahtuva salliminen tapahtuu seuraavasti:

  1. Määritä pääpalvelun julkaisukansiolle CGI:n suoritusoikeus options-direktiivillä
  2. Määritä AddHandler-direktiivi, joka kytkee tiedostopäätteen .pl cgi-script tyyppiseksi

Siis aiemmin määritelty konfiguraatio muuttuu muotoon


<Directory "C:/ApacheWeb">
  huomaa muutos alla  
  Options FollowSymLinks IncludesNoExec ExecCGI     
  AllowOverride None
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1 
</Directory> 
...
AddHandler cgi-script .pl 

Server Side Includes (SSI) käyttöönotto Apache-palvelimella

SSI-tekniikan käyttöönsaaminen vaatii hyvin vähän valmisteluja, mikäli olet asentanut Apachen MSI-asennusohjelman avulla. SSI-tuki asentuu Apacheen moduulin mod_include kautta, joten ensimmäinen tehtävä on varmistaa, ettei kyseistä moduulia ole kommentoitu

# Dynamic Shared Object (DSO) Support
...
LoadModule include_module modules/mod_include.so

Tämän jälkeen on myöskin varmistettava, että myös hakemistojen oikeudet sallivat SSI:n käytön. Tämä varmistuu mm. hyödyntämällä yllä olevassa CGI-esimerkissä olevaa IncludesNoExec-arvoa Options-direktiivillä.

Kolmas ja viimeinen vaihe SSI:n käyttöönottamisessa, on varmistaa että tiedostot suoritetaan palvelimella. Tämä hoituu yllä olevan CGI-esimerkin mukaisesti direktiivin AddHandler-avulla minkä lisäksi tarvitaan AddOutputFilter-direktiiviä. Oletusarvoisesti SSI:tä suositellaan käytettävän .shtml-päätteen omaavissa tiedostoissa:


AddHandler server-parsed .shtml
AddOutputFilter INCLUDES .shtml 

Testaa luomalla palvelimen juureen tiedosto ssl-testi.shtml ja sijoita sen sisään alla oleva SSI-komento:

<!--#include file="hello.pl"-->

Kun siirryt tarkastelemaan sivua http://localhost/ssl-testi.shtml selaimen kautta, pitäisi sinun nähdä tiedoston hello.pl palauttama viesti("hello, world").

PHP:n käyttöönotto Apache-palvelimella

PHP:n asennus Apachen päälle on esitelty PHP-osion artikkelissa PHP tuen asentaminen Apache-palvelimelle.