от Slavei Karadjov(3-11-2005)

рейтинг (15)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Един от начините да генерирате динамични страниците на вашия сайт е CGI скриптове написани на Perl. Но често проблема който възниква е как да ги накараме да се изпълняват по-бързо.

CGI (Common Gateway Interface) се е наложило като стандарт сред сървърите. Предимството на CGI е че всеки уеб сървър го поддържа и програмите за него могат да се напишат на различни програмни езици и голямо количество платформи.

Недостатъка на CGI е неговата неефективност. Всяко извикване на CGI програми създава нов процес на сървъра. Ако напишете CGI на Perl то тогава всеки път при извикване на програмата се зарежда и стартира и ново копие на Perl интерпретатора. Това води до използване на още памет и процесорно време. Естествено е да си зададем въпроса дали няма по-ефективен начин да се изпълняват програмите на Perl без да претърпят големи корекции.

Отговорът на този въпрос е mod_perl – модул за известния Apache Web Server. Този модул зарежда само веднъж копие на Perl интерпретатора в Apache, като по този начин не само ускорява изпълнението на perl скриптовете но и добавя нови възможности към сървъра.

Може би най-трудния момент при използването на mod_perl е неговото инсталиране и конфигуриране. За целта първо трябва да си свалите от интернет последните версии на Apache и mod_perl. Можете да ги откриете на следните адреси:

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

След като сте ги свалили ги копирайте в една директория – например /usr/local/download/ и напишете:

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

Тези команди ще разархивират файловете и ще създадат две директории със сорс кодовете на Apache и mod_perl.

Сега е време да конфигурира Apache за първи път. Ако не сте правили това преди напишете следните редове:

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

Където /www може да замените с директорията където искате да инсталирате вашия web сървър.
Следващите команди който трябва да напише са следните:

cd ../mod_perl-1.2/

Ако искате да разберете кои настройки на mod_perl да използвате прочетете README и INSTALL файла преди да напишете тази команда.

perl Makefile.PL

Ако искате да се активират всички директиви на mod_perl напишете:

perl Makefile.PL EVERYTHING=1

При изпълнение на тази команда инсталационната програма ще ви зададе два въпроса.

Configure mod_perl with ../apache-l.3.11/src ? [y]
Shall I build httpd in . ./apache_l .3.11/src for you? [y]
Отговорете и на двата с "y" или просто натиснете клавиша ENTER.

Командите който остава да напишете са

make
make install
Преди да напишете обаче make install спрете всички работещи сървъри с командата
killall httpd

Ако до тук сте изпълнявали правилно командите трябва да сте готови да пуснете вашият нов сървър. За целта пишете:

/www/bin/apachectrl start

Ако искате да се уверите, че работи вашия нов сървър напишете следните команди:

telnet localhost 80
и след това
HEAD / HTTP/1.0
Резултата от тази команда трябва да съдържа и следния ред
Server: Apache/1.3.11 mod_perl/l.20

Което ще рече че вече имате работещ сървър на порт 80 с mod_perl модул.

За да използвате възможностите на mod_perl ще трябва да добавите следните редове в httpd.conf файла( тои се намира в под директория conf на главната директорията на сървъра):



SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI


Чрез и тагове показваме, че искаме тези настройки да важат само за /perl-bin директорията отколкото за целия сървър. Това ще рече че само файловете в директорията /perl-bin ще се третират единствено като perl скриптове и ще се изпълняват от заредения вече в Apache Perl интерпретатор.

Добавете също така и следните директиви в httpd.conf

PerlSendHeader On
PerlWarn On
(ако искате предупрежденията при изпълнение на програмата да се показват, отколкото да се записват в error.log файла)
PerlTaintCheck On
(ако искате да добавите допълнителна сигурност към скриптовете си).
След което запишете файла и проверете новата конфигурация със следната команда:
/www/bin/apachectrl configtest

Край на част първа

Тази статия и други полезни може да прочетете във следващия брой на вестник "PC Ревю"



<< Apache + mod_perl (част 2) | Как да стартираме Linux при стартиране на Win >>