mod_perl_Podrecznik_programisty_modpkp.pdf

(350 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
mod_perl. Podrêcznik
programisty
Autorzy: Geoffrey Young, Paul Lindner, Randy Kobes
T³umaczenie: Przemys³aw Kowalczyk
ISBN: 83-7197-799-9
Tytu³ orygina³u:
mod_perl Developer's Cookbook
Format: B5, stron: 564
Przyk³ady na ftp: 105 kB
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Byæ mo¿e Perl jest najlepszym jêzykiem s³u¿¹cym do pisania skryptów CGI, ale skrypty
CGI nie s¹ najlepszym sposobem tworzenia aplikacji internetowych. Potrzeba wiêkszej
wydajno ci, lepszej integracji z serwerem WWW i pe³niejszego wykorzystania jego
mo¿liwo ci doprowadzi³a do stworzenia modu³u mod_perl. Pozwala on na pisanie
modu³ów serwera Apache w Perlu i na pe³ny dostêp do funkcji API Apache'a z poziomu
Perla.
mod_perl jest bardzo rozbudowany, dziêki czemu daje programi cie ogromne
mo¿liwo ci. Ksi¹¿ka „mod_perl. Kompendium programisty” bêdzie nieocenion¹ pomoc¹
w poznawaniu jego potencja³u. Nauczysz siê z niej podstaw mod_perla, a gdy ju¿ je
opanujesz, poznasz tajniki pisania du¿ych i skomplikowanych aplikacji.
W ksi¹¿ce opisano miêdzy innymi:
• Instalacjê i konfiguracjê mod_perla
• Komunikacjê mod_perla z Apache
• Dzia³ania na adresach URL
• Obs³ugê plików w rodowisku mod_perla
• Tworzenie w³asnych aplikacji w oparciu o mod_perla
• Osi¹gania maksymalnej wydajno ci aplikacji u¿ywaj¹cych mod_perla
• Dodatkowe modu³y wspó³pracuj¹ce z mod_perlem
Po przeczytaniu tej ksi¹¿ki uzyskasz now¹ perspektywê na programowanie aplikacji
sieciowych w Perlu. Programi ci Slashdot.org, Internet Movie Database i Wired wybrali
mod_perl jako platformê do tworzenia aplikacji. Mo¿e i Ty powiniene pój æ w ich
lady?
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Spis treści
Podziękowania.................................................................................................................................................9
O Autorach .....................................................................................................................................................12
Przedmowa...................................................................................................................................................... 13
Wprowadzenie............................................................................................................................................... 15
Część I
Rozdział 1.
Instalacja i konfiguracja................................................................................. 19
Instalacja modułu mod_perl .....................................................................................................................21
Wprowadzenie...................................................................................................................21
1.1. Dystrybucja binarna dla Uniksa .................................................................................22
1.2. Instalacja w systemie Windows .................................................................................25
1.3. Instalacja w systemie Mac OS X................................................................................27
1.4. Kompilacja w systemie Unix .....................................................................................27
1.5. Kompilacja w systemie Windows ..............................................................................31
1.6. Kompilacja w systemie Mac OS X ............................................................................35
1.7. Kompilacja modułu mod_perl jako biblioteki dzielonej............................................37
1.8. Testowanie instalacji ..................................................................................................38
1.9. Zmiana katalogów instalacji serwera Apache............................................................39
1.10. Dodawanie modułu mod_perl do działającego serwera Apache .............................40
1.11. Ponowne u ycie opcji kompilacji ............................................................................40
1.12. Odtwarzanie instalacji modułu mod_perl ................................................................41
1.13. Instalacja modułu mod_perl na wielu komputerach ................................................42
1.14. Sprawdzanie istniejącego serwera............................................................................45
1.15. Instalacja modułów serwera Apache z archiwum CPAN ........................................46
1.16. Śledzenie rozwoju modułu mod_perl.......................................................................47
1.17. Więcej ni dostęp przez CVS...................................................................................48
1.18. Kompilacja modułu mod_perl przy u yciu innej wersji Perla.................................50
4
Rozdział 2.
mod_perl. Kompendium programisty
Konfigurowanie modułu mod_perl .......................................................................................................53
Wprowadzenie...................................................................................................................53
2.1. Przenoszenie skryptów CGI .......................................................................................53
2.2. Moduł Apache::Registry ............................................................................................55
2.3. Skrypt startup.pl .........................................................................................................58
2.4. Dzielenie przestrzeni nazw w środowisku Apache::Registry ....................................61
2.5. Wczesne ładowanie skryptów w środowisku Apache::Registry................................62
2.6. Ustawianie zmiennych środowiskowych CGI ...........................................................63
2.7. Ustawianie innych zmiennych środowiskowych .......................................................64
2.8. Ustawianie opcji interpretera Perla ............................................................................65
2.9. Bloki BEGIN i END w skrypcie startup.pl ................................................................66
2.10. Zarządzanie własnymi bibliotekami.........................................................................67
2.11. Trwałe połączenia z bazą danych.............................................................................69
2.12. Wcześniejsze nawiązywanie połączeń .....................................................................70
2.13. Nietrwałe połączenia do bazy danych w środowisku Apache::DBI ........................72
2.14. Ustawianie zmiennych specyficznych dla modułu mod_perl ..................................73
2.15. Ustawianie bardziej skomplikowanych zmiennych .................................................74
2.16. Dynamiczna konfiguracja serwera Apache..............................................................75
2.17. Zachowywanie kolejności w sekcjach <Perl> .........................................................77
2.18. U ywanie opcji w wierszu poleceń..........................................................................78
2.19. Uruchamianie podwójnego serwera .........................................................................79
2.20. U ywanie modułu mod_proxy do przekazywania ądań
do serwera Apache z modułem mod_perl ................................................................80
2.21. U ywanie modułu mod_proxy_add_forward...........................................................80
Część II
Rozdział 3.
Interfejs API modułu mod_perl..................................................................83
Obiekt ądania ..............................................................................................................................................87
Wprowadzenie...................................................................................................................87
3.1. Obiekt ądania............................................................................................................87
3.2. Komunikat ądania HTTP..........................................................................................89
3.3. ądanie klienta ...........................................................................................................91
3.4. Dostęp do nagłówków ądania...................................................................................92
3.5. Dostęp do pól formularzy HTML ..............................................................................95
3.6. Dane wysłane metodą POST......................................................................................97
3.7. Obsługa cookies .........................................................................................................98
3.8. Obsługa plików wysyłanych na serwer....................................................................100
3.9. Ustawianie nagłówków odpowiedzi serwera ...........................................................103
3.10. Sterowanie pamięcią podręczną .............................................................................105
3.11. Wysyłanie nagłówków odpowiedzi serwera ..........................................................106
3.12. Ustawianie statusu odpowiedzi ..............................................................................108
3.13. Ustawianie nagłówków w przypadku błędu...........................................................111
3.14. Nagłówki o wielu wartościach ...............................................................................113
3.15. ądania wewnętrzne...............................................................................................115
3.16. Ustawianie nagłówków ądania wewnętrznego.....................................................117
3.17. Rozpoznawanie ądań wewnętrznych....................................................................118
3.18. Metoda HTTP ądania ...........................................................................................118
3.19. Dostęp do obiektu ądania z podprogramu XS......................................................120
Spis treści
5
Komunikacja z serwerem Apache....................................................................................................... 127
Wprowadzenie.................................................................................................................127
4.1. Obiekt Apache::Server .............................................................................................127
4.2. Symulowanie dyrektyw IfModule i IfDefine ...........................................................130
4.3. Dostęp do dyrektyw ServerRoot i DocumentRoot...................................................132
4.4. Zapis do dziennika błędów.......................................................................................134
4.5. Dostęp do dyrektywy ErrorLog................................................................................136
4.6. Wartość LogLevel ....................................................................................................138
4.7. Obiekt Apache::Connection .....................................................................................140
4.8. Zdalne adresy IP i nazwy serwerów.........................................................................141
4.9. Wykrywanie zerwania połączenia............................................................................143
4.10. Zamykanie procesu potomnego serwera Apache...................................................145
Rozdział 4.
Rozdział 5.
Przetwarzanie adresów URI................................................................................................................. 149
Wprowadzenie.................................................................................................................149
5.1. ądany adres URI.....................................................................................................150
5.2. Określanie dyrektywy <Location> dla adresu URI .................................................152
5.3. Zmiana ądanego adresu URI ..................................................................................155
5.4. Konstruowanie nowego adresu URI ........................................................................157
5.5. Kodowanie znaków specjalnych w adresie URI ......................................................159
5.6. Wymuszenie typu MIME za pomocą adresu URI ...................................................161
5.7. Pobieranie zawartości ądania wewnętrznego .........................................................162
5.8. U ycie klasy Apache::Util poza środowiskiem modułu mod_perl..........................166
Rozdział 6.
Obsługa plików .......................................................................................................................................... 169
Wprowadzenie.................................................................................................................169
6.1. Tworzenie uchwytów plików ...................................................................................170
6.2. Tworzenie plików tymczasowych............................................................................172
6.3. Wysyłanie całego pliku ............................................................................................173
6.4. Wczytywanie zawartości plików do zmiennych ......................................................176
6.5. Pobieranie informacji o ądanym pliku ...................................................................176
6.6. Nagłówki warunkowe ..............................................................................................180
6.7. ądania fragmentów plików.....................................................................................183
6.8. Nagłówki związane z datami....................................................................................187
6.9. Opró nianie buforów wyjściowych .........................................................................188
6.10. Przekierowanie uchwytów plików wyjściowych ...................................................190
Rozdział 7.
Tworzenie programów obsługi..............................................................................................................193
Wprowadzenie.................................................................................................................193
7.1. Tworzenie programu obsługi ...................................................................................194
7.2. Konfiguracja programów obsługi.............................................................................197
7.3. Dodawanie niewielkich programów obsługi............................................................199
7.4. Przygotowanie modułu do publikacji.......................................................................201
7.5. Tworzenie archiwum programu TAR ......................................................................202
7.6. Tworzenie binarnej dystrybucji PPM.......................................................................204
7.7. Testowanie modułu ..................................................................................................207
7.8. Własne dyrektywy konfiguracyjne...........................................................................214
7.9. Rozszerzanie prototypów własnych dyrektyw.........................................................223
7.10. Łączenie własnych dyrektyw .................................................................................225
7.11. Zastępowanie dyrektyw rdzeniowych....................................................................231
7.12. Dodawanie znaczników serwera ............................................................................236
7.13. Publikowanie modułu w archiwum CPAN ............................................................237
6
Rozdział 8.
mod_perl. Kompendium programisty
Współpraca z programami obsługi ..................................................................................................... 239
Wprowadzenie.................................................................................................................239
8.1. Wykrywanie zmian programów obsługi ..................................................................239
8.2. Dzielenie danych wewnątrz procesu potomnego .....................................................241
8.3. Tworzenie dzielonego bufora...................................................................................244
8.4. Zachowywanie stanu ................................................................................................247
8.5. Wewnętrzne przekierowania ....................................................................................251
8.6. Tworzenie własnych stron o błędach .......................................................................254
8.7. Przywracanie domyślnych stron o błędach ..............................................................257
8.8. Łańcuchy programów obsługi..................................................................................259
8.9. Łańcuchy programów obsługi w języku C...............................................................261
8.10. Dostęp do zmiennych środowiskowych.................................................................264
8.11. Dzielenie danych między fazami ...........................................................................265
8.12. Określanie aktualnej fazy ądania..........................................................................268
8.13. Dane konfiguracyjne modułu Perla........................................................................269
8.14. Dane konfiguracyjne modułu języka C..................................................................270
Rozdział 9.
Dostrajanie serwera Apache i modułu mod_perl ......................................................................... 275
Wprowadzenie.................................................................................................................275
9.1. Zbieranie podstawowych informacji o serwerze......................................................277
9.2. Tworzenie raportu zu ycia pamięci .........................................................................281
9.3. Zu ycie pamięci przez procesy serwera Apache......................................................283
9.4. Bardziej szczegółowe informacje o zu yciu pamięci przez procesy serwera..........284
9.5. Zu ycie pamięci przez moduły Perla .......................................................................286
9.6. Redukcja narzutu przy imporcie modułów ..............................................................288
9.7. Zmniejszanie całkowitego zu ycia pamięci.............................................................289
9.8. Zwiększanie obszaru pamięci dzielonej...................................................................291
9.9. Regulacja liczby procesów potomnych....................................................................293
9.10. Ograniczanie wzrostu zu ycia pamięci przez procesy...........................................294
9.11. Zamykanie niekontrolowanych procesów..............................................................296
9.12. Profilowanie programów obsługi ...........................................................................298
9.13. Znajdowanie wąskich gardeł wydajności...............................................................299
9.14. Dostrajanie wydajności serwera.............................................................................301
9.15. Serwer Apache jako serwer proxy .........................................................................305
9.16. U ywanie programu uruchomieniowego Perla z modułem mod_perl...................308
9.17. Wyszukiwanie błędów w skryptach Apache::Registry..........................................310
9.18. Redukcja narzutu uruchomieniowego....................................................................311
9.19. Wyszukiwanie błędów przy naruszeniach segmentacji .........................................313
Rozdział 10.
Programowanie obiektowe przy u yciu modułu mod_perl......................................................315
Wprowadzenie.................................................................................................................315
10.1. Tworzenie klas i obiektów .....................................................................................316
10.2. Dziedziczenie metod ..............................................................................................318
10.3. Tworzenie obiektowych programów obsługi.........................................................321
10.4. U ywanie obiektowych programów obsługi..........................................................323
10.5. Dziedziczenie po klasie Apache.............................................................................326
10.6. Dziedziczenie po klasie Apache przy u yciu modułów XS...................................328
10.7. Dziedziczenie po klasie Apache::Registry.............................................................330
10.8. Dziedziczenie po klasie Apache::Request..............................................................333
Zgłoś jeśli naruszono regulamin