ot Slavei Karadjov(3-11-2005)

reiting (15)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Edin ot nachinite da generirate dinamichni stranitsite na vashiia sait e CGI skriptove napisani na Perl. No chesto problema koito vuznikva e kak da gi nakarame da se izpulniavat po-burzo.

CGI (Common Gateway Interface) se e nalozhilo kato standart sred survurite. Predimstvoto na CGI e che vseki ueb survur go poddurzha i programite za nego mogat da se napishat na razlichni programni ezitsi i goliamo kolichestvo platformi.

Nedostatuka na CGI e negovata neefektivnost. Vsiako izvikvane na CGI programi suzdava nov protses na survura. Ako napishete CGI na Perl to togava vseki put pri izvikvane na programata se zarezhda i startira i novo kopie na Perl interpretatora. Tova vodi do izpolzvane na oshte pamet i protsesorno vreme. Estestveno e da si zadadem vuprosa dali niama po-efektiven nachin da se izpulniavat programite na Perl bez da preturpiat golemi korektsii.

Otgovorut na tozi vupros e mod_perl – modul za izvestniia Apache Web Server. Tozi modul zarezhda samo vednuzh kopie na Perl interpretatora v Apache, kato po tozi nachin ne samo uskoriava izpulnenieto na perl skriptovete no i dobavia novi vuzmozhnosti kum survura.

Mozhe bi nai-trudniia moment pri izpolzvaneto na mod_perl e negovoto instalirane i konfigurirane. Za tselta purvo triabva da si svalite ot internet poslednite versii na Apache i mod_perl. Mozhete da gi otkriete na slednite adresi:

http://www.perl.com/CPAN/modules/by-module/Apache/ - mod_perl
http://perl.apache.org - mod_perl
http://www.apache.org - apache
http://apache.nat.bg - apache

Sled kato ste gi svalili gi kopiraite v edna direktoriia – naprimer /usr/local/download/ i napishete:

cd /usr/local/downloads
tar -zxvf apache_1.3.11.tar.gz
tar -zxvf mod_perl-1.2.tar.gz

Tezi komandi shte razarhivirat failovete i shte suzdadat dve direktorii sus sors kodovete na Apache i mod_perl.

Sega e vreme da konfigurira Apache za purvi put. Ako ne ste pravili tova predi napishete slednite redove:

cd apache-1.3.11/
./configure --prefix=/www

Kudeto /www mozhe da zamenite s direktoriiata kudeto iskate da instalirate vashiia web survur.
Sledvashtite komandi koito triabva da napishe sa slednite:

cd ../mod_perl-1.2/

Ako iskate da razberete koi nastroiki na mod_perl da izpolzvate prochetete README i INSTALL faila predi da napishete tazi komanda.

perl Makefile.PL

Ako iskate da se aktivirat vsichki direktivi na mod_perl napishete:

perl Makefile.PL EVERYTHING=1

Pri izpulnenie na tazi komanda instalatsionnata programa shte vi zadade dva vuprosa.

Configure mod_perl with ../apache-l.3.11/src ? [y]
Shall I build httpd in . ./apache_l .3.11/src for you? [y]
Otgovorete i na dvata s "y" ili prosto natisnete klavisha ENTER.

Komandite koito ostava da napishete sa

make
make install
Predi da napishete obache make install sprete vsichki raboteshti survuri s komandata
killall httpd

Ako do tuk ste izpulniavali pravilno komandite triabva da ste gotovi da pusnete vashiiat nov survur. Za tselta pishete:

/www/bin/apachectrl start

Ako iskate da se uverite, che raboti vashiia nov survur napishete slednite komandi:

telnet localhost 80
i sled tova
HEAD / HTTP/1.0
Rezultata ot tazi komanda triabva da sudurzha i sledniia red
Server: Apache/1.3.11 mod_perl/l.20

Koeto shte reche che veche imate rabotesht survur na port 80 s mod_perl modul.

Za da izpolzvate vuzmozhnostite na mod_perl shte triabva da dobavite slednite redove v httpd.conf faila( toi se namira v pod direktoriia conf na glavnata direktoriiata na survura):



SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI


CHrez i tagove pokazvame, che iskame tezi nastroiki da vazhat samo za /perl-bin direktoriiata otkolkoto za tseliia survur. Tova shte reche che samo failovete v direktoriiata /perl-bin shte se tretirat edinstveno kato perl skriptove i shte se izpulniavat ot zaredeniia veche v Apache Perl interpretator.

Dobavete sushto taka i slednite direktivi v httpd.conf

PerlSendHeader On
PerlWarn On
(ako iskate preduprezhdeniiata pri izpulnenie na programata da se pokazvat, otkolkoto da se zapisvat v error.log faila)
PerlTaintCheck On
(ako iskate da dobavite dopulnitelna sigurnost kum skriptovete si).
Sled koeto zapishete faila i proverete novata konfiguratsiia sus slednata komanda:
/www/bin/apachectrl configtest

Krai na chast purva

Tazi statiia i drugi polezni mozhe da prochetete vuv sledvashtiia broi na vestnik "PC Revyu"



<< Apache + mod_perl (chast 2) | Kak da startirame Linux pri startirane na Win >>