LINUX-BG   Адрес : http://www.linux-bg.org
Apache + mod_perl (част 1)
От: Slavei Karadjov
Публикувана на: 3-11-2005
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=317050984

Един от начините да генерирате динамични страниците на вашия сайт е 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 >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 1 wallclock secs ( 0.17 usr + 0.02 sys = 0.19 CPU)