§
Apache in Windows
Korak 7 - Dodatne spletne aplikacije za spletni strežnik (SSI, CGI Perl, PHP, ASP)

Predgovor Kazalo Korak 1 - Izbira povezave in domene Korak 2 - Izbira strojne opreme Korak 3 - Namestitev operacijskega sistema Korak 4 - Priprava omrežja Korak 5 - Namestitev spletnega strežnika Korak 6 - Nastavitev spletnega strežnika Korak 7 - Dodatne spletne aplikacije za spletni strežnik (SSI, CGI Perl, PHP, ASP) Korak 8 - Namestitev in nastavitev podatkovne baze MySQL Preizkušanje Predstavitev spletnih strani in dostop do njih Analiza

+ Lastnosti dokumenta

Naslov
Apache in Windows
Del
Korak 7 - Dodatne spletne aplikacije za spletni strežnik (SSI, CGI Perl, PHP, ASP)
Datum vsebine
16. 12. 2003
Original
Apache in Windows
Vrsta
maturitetna seminarska naloga
Jezik
slovenščina
Različica
1.0
Ustanova
Šolski center Celje, Lava
Študij
Tehniška gimnazija, 4. letnik
Predmet
Laboratorijske vaje
Mentor
Borut Slemenšek
Avtor
Tine Lesjak
Ocena
5 od 1-5

SSI

S SSI-jem lahko razširite osnovno zmožnost spletnih strani.

SSI (Server Side Includes) je dodatek, vgrajen v strežnik Apache, ki omogoča nekaj aktivnosti na spletni strani. "Nekaj" zato, ker pozna le nekaj ukazov, ki so dovolj zmogljivi, da se nam ni potrebno ozirati po večjih, veliko zmogljivejših in s tem počasnejših skriptnih jezikih, kot sta npr. Perl in PHP. SSI nam omogoča vstavljanje ene datoteke v drugo, prikaz velikosti datoteke in datum, ko je bila datoteka zadnjič spremenjena; prikaz časa in datuma in dodatno poljubno zaganjanje skriptnih datotek (prek CGI). Posledice vseh teh ukazov se pokažejo na spletni strani, ki je programirana z ukazi SSI.
Da bi takšna spletna stran delovala moramo le malo pošariti po nastavitveni datoteki Apache strežnika:
Start -> (All) Programs -> Apache HTTP Server -> Configure Apache Server -> Edit the Apache httpd.conf Configuration File

Datoteko httpd.conf lahko tudi najdete v mapi C:\Program Files\Apache Group\Apache\conf.
Najbolje, da jo odprete v Notepadu (Beležnici).

Če ste namestili strežnik različice 1.3.27 potem vam naslednje nastavitve ni potrebno nastavljati, ker je že. Vseeno, bodite prepričani, da je modul za SSI vklopljen. V sekciji 1, V vrstici 214:

AddModule mod_include.c

Sedaj se morate odločiti, kakšno končnico bodo imele vaše SSI datoteke s spletno vsebino. Priporočam vam, da imajo le-te končnico .shtml. Če bi se odločili za standardno končnico (.html), vedite, da bi strežnik za vsako spletno datoteko (s končnico .html) preverjal SSI ukaze, ki jih verjetno sploh ne bi imele. V našem primeru bo SSI ukaze strežnik iskal samo v datotekah s končnico .shtml. To nastavite enostavno tako, da v sekciji 2 nastavitvene datoteke (v mojem primeru v vrstici 832 in 833) izbrišete znak za komentar "#":

AddType text/html .shtml
AddHandler server-parsed .shtml

V naslednjem koraku, zadnjem, moramo nastaviti samo še dovoljenja - v kateri mapi dovolimo izvajati SSI ukaze. Imamo dva ukaza za to: Includes in IncludesNoExec. Pri zadnjem ni dovoljeno izvajati exec ukaza, ki kliče zunanje skripte (prek CGI).
Recimo, da želite imeti v mapi C:\web_server\www\cas spletno datoteko, ki bo prikazala v brskalniku trenutni čas in datum. Zanjo zapišete dovoljenje (najbolje, kar pri ukazih Alias - sekcija 2, vrstica 600):

<Directory "C:/web_server/www/cas">
     Options +IncludesNoExec
</Directory>

Priporočam, da ne uporabljate Includes ukaza, ki dovoljuje CGI skriptiranje, ker je potencialno zelo nevarno.

Shranite nastavitveno datoteko in ponovno zaženite spletni strežnik:
Start -> (All) Programs -> Apache HTTP Server -> Control Apache Server -> Restart

Sedaj naredite testno stran. Naredite novo mapo cas v mapi C:\web_server\www in v njej datoteko cas.shtml. V njo zapišite naslednje vrstice (najbolje kar v Notepadu):

<html>
<head>
<title>Trenutni cas</title>
</head>

<body>
<p>
<!--#echo var="DATE_LOCAL" -->      <!-- izpiše lokalni čas -->
</p>
</body>
</html>

Odprite brskalnik in pojdite na naslov: http://localhost/cas/cas.shtml. Prikazati se vam mora spletna stran z zapisanim današnjim datumom in trenutnim časom, seveda, če ste vse pravilno naredili.

Preizkus SSI-ja

Če boste imeli veliko spletnih strani z SSI ukazi, potem lahko nastavite tudi privzeto datoteko, recimo index.shtml. V vrstici 384 nastavitvene datoteke (httpd.conf) dopišite index.shtml. V našem primeru:

DirectoryIndex index.html index.shtml

Shranite nastavitveno datoteko in ponovno zaženite spletni strežnik:
Start -> (All) Programs -> Apache HTTP Server -> Control Apache Server -> Restart

Sedaj preimenujte datoteko cas.shtml v index.shtml in v brskalniku vpišite naslov http://localhost/cas/. Prikazati se vam mora ista spletna stran.

CGI in Perl

Standard za dinamične spletne vsebine.

Eden od programskih jezikov, ki so namenjeni za komunikacijo prek CGI-ja, je najbolj popularni Perl (Practical Extraction and Report Language). Perl je podoben jeziku C++, a ima nekaj svojih posebnosti. Komunikacija med uporabnikom, računalnikom in zaslonom je z njim izjemno lahka.

CGI (Common Gateway Interface) je standardni vmesnik za prehode, ustvarjen za enolično komuniciranje med različnimi sistemi.

Danes ima večina strežnikov nameščen prevajalnik in izvajalnik (tolmač) za Perl, saj je zelo koristen pri dinamični vsebini spletnih strani (pošiljanje sporočil, govorilnice, knjige gostov ...). Namestili ga bomo tudi mi.

Ker strežnik Apache ne vsebuje Perla, ga moramo najprej prenesti iz spletnih strani. Zastonjsko različico najdete na http://www.activestate.com spletni strani, paket pa se imenuje ActiveState ActivePerl, trenutna namestitvena datoteka je različice 5.8.0 in je velika 11,5 MB.

Prenesite namestitveno datoteko in jo zaženite. Pri prvem oknu kliknite "Next >".
Preberite, sprejmite licenco in ponovno kliknite "Next >".
Pri naslednjem okencu (Custom Setup) je najbolje, da pustite vse privzeto nastavljeno in kliknete "Next >".
Pri naslednjih dveh okencih je tudi najbolje, da kar kliknete "Next >".
Kliknite "Install", da se namestitev prične.
Po končani namestitvi še kliknite "Finish".

Namestitev Perl paketa (1) Namestitev Perl paketa (2)

Sledi nastavitev osnovnih nastavitev, da bo strežnik vedel, da gre za CGI skript.

Odprite nastavitveno datoteko strežnika:
Start -> (All) Programs -> Apache HTTP Server -> Configure Apache Server -> Edit the Apache httpd.conf Configuration File

Datoteko httpd.conf lahko tudi najdete v mapi C:\Program Files\Apache Group\Apache\conf.
Najbolje, da jo odprete v Notepadu (Beležnici).

Tukaj je nastavitev silno malo, je pa zato več dela s samimi skripti, saj moramo poznati Perl programski jezik.
Vse, kar je treba nastaviti, so samo dovoljenja nekaterim mapam. Pred prvimi nastavitvami strežnika, smo naredili v mapi C:\web_server mapo cgi-bin. Ker bomo imeli dobro organiziran strežnik, jo bomo uporabili za vse CGI skripte. S tem bomo naredili velik varnostni korak.

V sekciji 2 nastavitvene datoteke se sprehodite približno v vrstico 600, kjer smo že zapisali Alias ukaz(e). Važno je, da tukaj zapišete naslednje:

ScriptAlias /cgi-bin "C:/web_server/cgi-bin"

S tem smo uredili naslov za mapo za skripte. Sedaj moramo še nastaviti dodatno dovoljenje za to mapo, ki pove strežniku, da lahko v tej mapi zaganja Perl programe. To storimo že z znanimi ukazi, ki jih vpišemo kar pod ScriptAlias ukazom:

<Directory "C:/web_server/cgi-bin">
     Options +ExecCGI
</Directory>

Z argumentom ExecCGI smo v mapi C:\web_server\cgi-bin in v podmapah dovolili izvajanje CGI skriptov.

Nastavitveno datoteko shranite in ponovno zaženite strežnik:
Start -> (All) Programs -> Apache HTTP Server -> Control Apache Server -> Restart

Da bi vse skupaj preverili, bo potrebno narediti preprost CGI skript, napisan v Perlu. Najbolje da v Notepadu zapišete spodnje ukaze in jih shranite v datoteko pozdrav.pl (končnica .cgi je tudi veljavna) v mapo C:\web_server\cgi-bin.

#!C:\\Perl\\bin\\perl.exe
# klic Perl tolmača

$beseda = "Pozdrav";            # spremenljivka z vrednostjo Pozdrav

# izpis
print "Content-type: text/html\\n\\n";
print "<html>";
print "<head>\\n<title>Skriptni pozdrav</title>\\n</head>\\n";
print "<body>\\n<p>$beseda!</p>\\n";     # izpis vrednosti spremenljivke $beseda
print "</body>\\n</html>";

exit;                           # izhod

Opomba: Prva vrstica vsakega Perl skripta mora vsebovati pot do tolmača Perla. Za znakoma "#!" je potrebno zapisati pot do njega. Nahaja se v mapi bin, kamor smo namestili ActivePerl paket.

Nasvet: Po prvem ponovnem zagonu bo računalnik samodejno prepoznal pot do perl.exe tolmača, zato lahko v prvi vrstici zapišemo samo #!perl, kar je veliko bolj smotrno.

Ko ste program zapisali in shranili v mapo C:\web_server\cgi-bin z imenom pozdrav.pl, lahko vso zadevo preizkusite. Odprite brskalnik in poiščite naslov http://localhost/cgi-bin/pozdrav.pl. V brskalniku se vam mora izpisati pozdrav.

Preizkus Perla

Dodatek:
Če želite za posamezne spletne strani, ki smo jih definirali z ukazom Alias narediti samostojen naslov za skripte, le dodajte ukaz:

ScriptAlias /izdelki-cgi "C:/web_server/cgi-bin/izdelki"

Sedaj bo vsak, ki bo zahteval naslov http://www.podjetje.si/izdelki-cgi/pozdrav.pl na strežniku zagnal skript pozdrav.pl v mapi C:\web_server\cgi-bin\izdelki.

E-pošta

Ni zastonjske rešitve.

Veliko strežnikov ima možnost pošiljanja in sprejemanja elektronskih sporočil. To nam omogoča, da pošljemo kakšno sporočilo obiskovalcu spletnih strani (ob prijavi, ob nakupu, ob stiku). S strežnikom Apache je to v Windows operacijskem sistemu malce oteženo. Če želimo imeti poštni strežnik, ga moramo obvezno kupiti ali dobiti preizkusno različico, ki bo delovala 30 dni, poleg tega nimamo veliko izbire. Takšen poštni strežnik je tudi SendMail, ki ga dobite na spletnih straneh http://www.indigostar.com. Namestitvena datoteka je velika 1 MB, deluje pa zelo podobno kot sendmail program v Linuxu.

Poštnega strežnika nisem preizkusil.

PHP

Najbolj priljubljen jezik za izdelavo dinamičnih spletnih vsebin.

Da bi uporabljali aktivno spletno vsebino, moramo uporabiti Perl ali PHP. PHP (Hypertext Preprocessor) je programski jezik, temelječ na C-ju, ki je za dinamične spletne vsebine izredno dobro pripravljen. Zasnovan je tako, da ko strežnik ugotovi, da gre za PHP skript, ga prepusti PHP programu, ki skript prevede in izvede ter pošlje brskalniku ustrezno vsebino.

Tudi tukaj je potrebna namestitev dodatnega programa in nastavitev. Najprej prenesimo PHP tolmač iz spletne strani http://www.php.net. Velikost namestitvene datoteke različice 4.3.0 je točno 1 MB.

Ko ste uspešno prenesli namestitveno datoteko, jo zaženite.
Odpre se Welcome okno. Kliknite "Next >", nato "I Agree".
Pustite privzeto Standard namestitev in kliknite "Next >".

Namestitev PHP tolmača (1)

Naslednje okno (Choose Destination Folder) tudi pustite nespremenjeno in kliknite "Next >".

Namestitev PHP tolmača (2)

Naslednje okno (Mail Configuration) je bolj kočljivo. Če ste namestili poštni strežnik, le vpišite pravilne vrednosti. Če poštnega strežnika nimate nameščenega, pustite nedotaknjeno in kliknite "Next >".

Namestitev PHP tolmača (3)

Pri naslednjem oknu (Server Type) izberite "Apache" in kliknite "Next >".

Namestitev PHP tolmača (3)

Še enkrat kliknite "Next >".
Po končani namestitvi še dvakrat kliknite "OK".

Sedaj je čas, da nastavimo spletni strežnik, da bo prepoznal PHP skripte.

Odprite nastavitveno datoteko strežnika:
Start -> (All) Programs -> Apache HTTP Server -> Configure Apache Server -> Edit the Apache httpd.conf Configuration File

Datoteko httpd.conf lahko tudi najdete v mapi C:\Program Files\Apache Group\Apache\conf. Najbolje, da jo odprete v Notepadu (Beležnici).

Vse, kar moramo nastaviti, je pot do PHP tolmača in vrsta končnice, ki jo uporabljajo PHP skripti. Datoteke s PHP skripti imajo po navadi končnice .php, .php3 ali .php4. Uporabili bomo univerzalno, .php. V nastavitveni datoteki strežnika vpišite v sekciji 2 (v mojem primeru v vrstici 844):

ScriptAlias /php_program "C:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php_program/php.exe"

Shranite nastavitveno datoteko in ponovno zaženite spletni strežnik:
Start -> (All) Programs -> Apache HTTP Server -> Control Apache Server -> Restart

Če želite preizkusiti PHP skriptiranje, naredite datoteko info.php in jo shranite v mapo C:\web_server\www\php. V datoteko info.php zapišite:

<?php              // začetek PHP kode
phpinfo();         // ukaz, ki izpiše informacije o PHP tolmaču
?>                 // konec PHP kode

Odprite brskalnik in poiščite naslov http://localhost/php/info.php. Odpreti se vam mora stran z vsemi podatki o PHP tolmaču.

Preizkus PHP-ja

Opomba: Podite pozorni, da ne boste uporabljali mape z imenom php_program, ker lahko pride do konflikta med PHP tolmačom in strežnikom.

Če boste imeli veliko spletnih strani s PHP skripti, lahko nastavite tudi privzeto datoteko, recimo index.php. V vrstici 384 nastavitvene datoteke (httpd.conf) dopišite index.php. V našem primeru:

DirectoryIndex index.html index.shtml index.php

Shranite nastavitveno datoteko in ponovno zaženite spletni strežnik:
Start -> (All) Programs -> Apache HTTP Server -> Control Apache Server -> Restart

Sedaj preimenujte datoteko info.php v index.php in v brskalniku vpišite naslov http://localhost/php/. Prikazati se vam mora ista spletna stran.

ASP

ASP lahko uporabljate samo na Microsoftovem IIS strežniku.

ASP (Active Server Pages) je prav tako programski jezik, namenjen dinamičnim spletnim stranem. Je striktno Microsoftova tehnologija, s katero je želel uveljaviti aktivne spletne strani tudi na Windows strežnikih, ko še tehnologiji PHP in Perl nista bili nared zanj. S tem pa si je Microsoft zagotovil, da ASP skripti tečejo le na Windows strežnikih s priloženim strežnikom IIS (Internet Information Services).
Ker strežnika IIS ne bomo postavljali, nam ne preostane nič drugega, kot da ne zagotovimo izvajanja ASP aktivnih spletnih strani.

Predgovor Kazalo Korak 1 - Izbira povezave in domene Korak 2 - Izbira strojne opreme Korak 3 - Namestitev operacijskega sistema Korak 4 - Priprava omrežja Korak 5 - Namestitev spletnega strežnika Korak 6 - Nastavitev spletnega strežnika Korak 7 - Dodatne spletne aplikacije za spletni strežnik (SSI, CGI Perl, PHP, ASP) Korak 8 - Namestitev in nastavitev podatkovne baze MySQL Preizkušanje Predstavitev spletnih strani in dostop do njih Analiza