Egyszerű webalkalmazás készítése (1. rész)
Bár számos keretrendszer áll rendelkezésünkre (a Catalyst, a Jifty, vagy a WebGUI) amivel az egyszerű fórumoktól a blogokon át akár az üzleti portálokig megvalósíthatjuk webes elképzeléseinket, mégis érdemes megismerkednünk az egyszerű, CGI modul által nyújtott lehetőséggel, amivel nagyon egyszerűen hozhatunk létre webalkalmazásokat.
CGI.pm
Perlben az ősidők óta létezik az egyszerű CGI modul, ami a legelső megoldás volt a dinamikus weboldalak létrehozásához. A böngésző címsorába írt kérést (címet) a webszerver továbbítja a megfelelő Perl program felé, lefuttatja és a kimenetét a böngészőnek visszaküldi.
A környezet
A tesztkörnyezet egy Debian Linux rendszer lesz, Perl 5.10-el.
linux:~# uname -aLinux linux 2.6.26-2-686 #1 SMP Wed Nov 4 20:45:37 UTC 2009 i686 GNU/Linuxlinux:~# perl -v
This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
Copyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Első dolgunk webszervert telepíteni a rendszerünkre, most a kicsi és gyors Lighttpd -t fogjuk használni.
linux:~# apt-get install lighttpdA telepítés után a Lighttpd elindult, ha mégsem, gondoskodjunk róla:
linux:~# /etc/init.d/lighttpd startStarting web server: lighttpd.Az /etc/lighttpd/lighttpd.conf konfigurációs állományban el kell végeznünk a megfelelő beállításokat, hogy futtani tudja a Perl -ben írt CGI programjainkat. Először engedélyeznünk kell a mod_cgi modult, úgy hogy a server.modules listához hozzá kell adnunk (vagy el kell távolítanunk a # jelet, ami a kikapcsolt állapotot jelöli:
server.modules = (
"mod_cgi",
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
# "mod_rewrite",
# "mod_redirect",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)Majd ezután (akár közvetlenül is) szerepelnie kell egy hozzárendelésnek, ami utasítja a webszervert, hogy a .cgi kiterjesztésű állományokat a Perl értelmezővel kell futtatni:
cgi.assign = (".cgi"=>"/usr/bin/perl")Mentsük el, majd indítsuk újra a Lighttpd -t, hogy érvényre jutassuk a változtatásokat:
linux:~# /etc/init.d/lighttpd stop
Stopping web server: lighttpd.
linux:~# /etc/init.d/lighttpd start
Starting web server: lighttpd.Ha mindent jól csináltunk, a webszerver fut és kész programjaink futtatására.
Hello.cgi
A Lighttpd alapértelmezetten a /var/www könyvtárat veszi a szerver gyökérkönyvtárának (ezt szintén a lighttpd.conf -ban tudjuk változtatni), így mi is ide hozzuk létre programunkat, a hello.cgi -t:
print "Content-type:text/html\n\n";
print "Hello web!";Miután elmentettük, adjunk neki 755-ös jogot, így a webszerver képes lesz futtatni. Ezekután irány a webböngészőnk és írjuk be: localhost/hello.cgi
A webböngésző kiírja, hogy Hello web! Nem túl sok, de megérte a fáradtságot, ezek után már képesek leszünk használni a CGI modul összes képességét, hogy dinamikus weboldalakat hozzunk létre.
- A hozzászóláshoz regisztráció és belépés szükséges

