pelna-wersja-modperl-podrecznik-programisty_modpkp.pdf

(10179 KB) Pobierz
656596875 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
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
SPIS TRECI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
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
wydajnoci, lepszej integracji z serwerem WWW i pe³niejszego wykorzystania jego
mo¿liwoci 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 programicie ogromne
mo¿liwoci. 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 wydajnoci 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. Programici 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?
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
656596875.001.png 656596875.002.png 656596875.003.png 656596875.004.png
Spis treci
Podzikowania................................................................................................................................................. 9
O Autorach .....................................................................................................................................................12
Przedmowa ...................................................................................................................................................... 13
Wprowadzenie............................................................................................................................................... 15
Cz I
Instalacja i konfiguracja................................................................................. 19
Rozdział 1. 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łaj3cego serwera Apache.............................40
1.11. Ponowne u5ycie 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 istniej3cego serwera............................................................................45
1.15. Instalacja modułów serwera Apache z archiwum CPAN........................................46
1.16. 8ledzenie rozwoju modułu mod_perl.......................................................................47
1.17. Wi9cej ni5 dost9p przez CVS...................................................................................48
1.18. Kompilacja modułu mod_perl przy u5yciu innej wersji Perla.................................50
4
mod_perl. Kompendium programisty
Rozdział 2. 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. Zarz3dzanie własnymi bibliotekami.........................................................................67
2.11. Trwałe poł3czenia z baz3 danych.............................................................................69
2.12. Wcze>niejsze nawi3zywanie poł3czeA.....................................................................70
2.13. Nietrwałe poł3czenia 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. U5ywanie opcji w wierszu poleceA..........................................................................78
2.19. Uruchamianie podwójnego serwera.........................................................................79
2.20. U5ywanie modułu mod_proxy do przekazywania 53daA
do serwera Apache z modułem mod_perl................................................................80
2.21. U5ywanie modułu mod_proxy_add_forward...........................................................80
Cz II Interfejs API modułu mod_perl.................................................................. 83
Rozdział 3. Obiekt ()dania ..............................................................................................................................................87
Wprowadzenie...................................................................................................................87
3.1. Obiekt 53dania............................................................................................................87
3.2. Komunikat 53dania HTTP..........................................................................................89
3.3. F3danie klienta...........................................................................................................91
3.4. Dost9p do nagłówków 53dania...................................................................................92
3.5. Dost9p do pól formularzy HTML..............................................................................95
3.6. Dane wysłane metod3 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 pami9ci3 podr9czn3.............................................................................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ł9du...........................................................111
3.14. Nagłówki o wielu warto>ciach...............................................................................113
3.15. F3dania wewn9trzne...............................................................................................115
3.16. Ustawianie nagłówków 53dania wewn9trznego.....................................................117
3.17. Rozpoznawanie 53daA wewn9trznych....................................................................118
3.18. Metoda HTTP 53dania...........................................................................................118
3.19. Dost9p do obiektu 53dania z podprogramu XS......................................................120
Spis treci
5
Rozdział 4. Komunikacja z serwerem Apache....................................................................................................... 127
Wprowadzenie.................................................................................................................127
4.1. Obiekt Apache::Server.............................................................................................127
4.2. Symulowanie dyrektyw IfModule i IfDefine...........................................................130
4.3. Dost9p do dyrektyw ServerRoot i DocumentRoot...................................................132
4.4. Zapis do dziennika bł9dów.......................................................................................134
4.5. Dost9p do dyrektywy ErrorLog................................................................................136
4.6. Warto>I LogLevel....................................................................................................138
4.7. Obiekt Apache::Connection.....................................................................................140
4.8. Zdalne adresy IP i nazwy serwerów.........................................................................141
4.9. Wykrywanie zerwania poł3czenia............................................................................143
4.10. Zamykanie procesu potomnego serwera Apache...................................................145
Rozdział 5. Przetwarzanie adresów URI ................................................................................................................. 149
Wprowadzenie.................................................................................................................149
5.1. F3dany adres URI.....................................................................................................150
5.2. Okre>lanie dyrektywy <Location> dla adresu URI.................................................152
5.3. Zmiana 53danego 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 pomoc3 adresu URI...................................................161
5.7. Pobieranie zawarto>ci 53dania wewn9trznego.........................................................162
5.8. U5ycie 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 53danym pliku...................................................................176
6.6. Nagłówki warunkowe..............................................................................................180
6.7. F3dania fragmentów plików.....................................................................................183
6.8. Nagłówki zwi3zane z datami....................................................................................187
6.9. Opró5nianie 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. Ł3czenie własnych dyrektyw.................................................................................225
7.11. Zast9powanie dyrektyw rdzeniowych....................................................................231
7.12. Dodawanie znaczników serwera............................................................................236
7.13. Publikowanie modułu w archiwum CPAN............................................................237
6
mod_perl. Kompendium programisty
Rozdział 8. Współpraca z programami obsługi ..................................................................................................... 239
Wprowadzenie.................................................................................................................239
8.1. Wykrywanie zmian programów obsługi..................................................................239
8.2. Dzielenie danych wewn3trz procesu potomnego.....................................................241
8.3. Tworzenie dzielonego bufora...................................................................................244
8.4. Zachowywanie stanu................................................................................................247
8.5. Wewn9trzne przekierowania....................................................................................251
8.6. Tworzenie własnych stron o bł9dach.......................................................................254
8.7. Przywracanie domy>lnych stron o bł9dach..............................................................257
8.8. ŁaAcuchy programów obsługi..................................................................................259
8.9. ŁaAcuchy programów obsługi w j9zyku C...............................................................261
8.10. Dost9p do zmiennych >rodowiskowych.................................................................264
8.11. Dzielenie danych mi9dzy fazami...........................................................................265
8.12. Okre>lanie aktualnej fazy 53dania..........................................................................268
8.13. Dane konfiguracyjne modułu Perla........................................................................269
8.14. Dane konfiguracyjne modułu j9zyka 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 zu5ycia pami9ci.........................................................................281
9.3. Zu5ycie pami9ci przez procesy serwera Apache......................................................283
9.4. Bardziej szczegółowe informacje o zu5yciu pami9ci przez procesy serwera..........284
9.5. Zu5ycie pami9ci przez moduły Perla.......................................................................286
9.6. Redukcja narzutu przy imporcie modułów..............................................................288
9.7. Zmniejszanie całkowitego zu5ycia pami9ci.............................................................289
9.8. Zwi9kszanie obszaru pami9ci dzielonej...................................................................291
9.9. Regulacja liczby procesów potomnych....................................................................293
9.10. Ograniczanie wzrostu zu5ycia pami9ci przez procesy...........................................294
9.11. Zamykanie niekontrolowanych procesów..............................................................296
9.12. Profilowanie programów obsługi...........................................................................298
9.13. Znajdowanie w3skich gardeł wydajno>ci...............................................................299
9.14. Dostrajanie wydajno>ci serwera.............................................................................301
9.15. Serwer Apache jako serwer proxy.........................................................................305
9.16. U5ywanie programu uruchomieniowego Perla z modułem mod_perl...................308
9.17. Wyszukiwanie bł9dów w skryptach Apache::Registry..........................................310
9.18. Redukcja narzutu uruchomieniowego....................................................................311
9.19. Wyszukiwanie bł9dó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. U5ywanie obiektowych programów obsługi..........................................................323
10.5. Dziedziczenie po klasie Apache.............................................................................326
10.6. Dziedziczenie po klasie Apache przy u5yciu 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