ABC skryptów CGI

Wstecz Dalej

CGI i Perl

Dotychczasowe rozważania nie były powiązane z żadnym konkretnym językiem programowania. Aby jednak przejść do konkretnych przykładów skryptów, musimy rzecz jasna oprzeć się na jakimś języku. Wybierzemy do tego celu język Perl, który bardzo często jest wykorzystywany do pisania skryptów CGI (krótki kurs tego języka został przedstawiony w numerze 8/2000 MI). Perl zyskał sobie taką popularność z uwagi na bogate możliwości (w szczególności bardzo rozbudowane mechanizmy przetwarzania tekstów), dostępność licznych bibliotek zawierających funkcje przydatne do tworzenia aplikacji internetowych - np. wczytywanie danych z formularzy, dostęp do baz danych itp. - jak również z uwagi na fakt, iż jest to język interpretowany, a więc plik zawierający treść skryptu jest zarazem plikiem wykonywalnym; nie ma konieczności kompilacji programu do odrębnego pliku binarnego.

Interpretery Perla dostępne są niemal dla każdego systemu unixowego (niejednokrotnie - jak np. w przypadku Linuxa - są one od razu dołączone do systemu), a także - choć początkowo Perl nie był tworzony z myślą o tych systemach - dla szeregu systemów nie-unixowych, w szczególności Windows. Kolejną zaletą tego języka jest zatem uniwersalność: ponieważ programy w Perlu są w dużym stopniu przenośne, te same skrypty CGI mogą być używane w serwerach WWW pracujących w różnych systemach operacyjnych. Interpretery Perla dla różnych platform systemowych można znaleźć na stronie http://www.perl.com/, która jest podstawowym źródłem informacji o tym języku.

Oprócz Perla na serwerach unixowych niewielkie, proste skrypty czasami pisze się również w języku powłoki (shella) Unixa. Z oczywistych przyczyn skrypty takie nie są bezpośrednio przenośne na serwery pracujące w innych systemach.

Aby zaznaczyć, że skrypt powinien być wykonywany przez interpreter Perla, pierwszy wiersz skryptu powinien mieć postać

     #!/usr/bin/perl
lub

     #!/usr/local/bin/perl
w zależności od tego, czy interpreter Perla znajduje się w katalogu /usr/bin, czy też /usr/local/bin (zgodnie z unixową konwencją w tym pierwszym katalogu umieszczone są programy, które dostępne są wraz z systemem, natomiast w drugim te, które były doinstalowywane oddzielnie). Jeżeli nie wiemy, która lokalizacja jest właściwa, łatwo to ustalić metodą prób i błędów. Często też program instalowany jest w taki sposób, że akceptowane są obydwie ścieżki dostępu. Skrypty pisane w języku powłoki Unixa zawierają natomiast pierwszy wiersz postaci #!/bin/sh (zamiast sh może czasami wystąpić nazwa innego shella, który wykorzystany został przez autora skryptu - np. bash albo csh).

W systemach unixowych plik, w którym zapisany jest skrypt, musi mieć ponadto ustawiony atrybut wykonalności (execute, x), przy czym aby mógł on być wykonany przez serwer WWW, musi być dostępny dla użytkownika, z którego uprawnieniami ten serwer pracuje (więcej informacji na ten temat znajduje się w notce "Prawa dostępu do plików").

W przypadku serwera pracującego w Windows sytuacja wygląda nieco inaczej. Tu - zgodnie ze standardami Windows - musimy skojarzyć z zainstalowanym interpreterem Perla odpowiednie rozszerzenie nazwy pliku, które będziemy nadawać wszystkim plikom zawierającym skrypty w Perlu (typowo jest to .pl, ale możemy użyć innego rozszerzenia - np. .cgi). Rozsądną rzeczą jest zdefiniowanie tego samego rozszerzenia w konfiguracji serwera WWW jako identyfikującego skrypty CGI - por. pierwszy rozdział niniejszego poradnika. Wiersz "#!/usr/bin/perl" na początku skryptu nie jest tu potrzebny, ale również w niczym nie przeszkadza - jeżeli go podamy, zostanie po prostu zignorowany (interpreter Perla traktuje wiersze zaczynające się od znaku "#" jako komentarze).


Wstecz Dalej

Jarosław Rafa 2000. Tekst udostępniony na licencji Creative Commons (uznanie autorstwa - użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.

Wersja HTML opracowana 11.10.2000, ostatnia aktualizacja adresów 19.03.2002.


Powrót do spisu treści Statystyka