mod_perl. Podręcznik programisty - Helion
Tytuł oryginału: mod_perl Developers Cookbook
Tłumaczenie: Przemysław Kowalczyk
ISBN: 83-7197-799-9
stron: 564, Format: B5, okładka: miękka
Data wydania: 2003-01-30
Księgarnia: Helion
Cena książki: 69,00 zł
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. Podręcznik 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
Osoby które kupowały "mod_perl. Podręcznik programisty", wybierały także:
- Apache 2. Leksykon kieszonkowy 24,90 zł, (12,45 zł -50%)
- Apache Kafka. Kurs video. Przetwarzanie danych w czasie rzeczywistym 87,41 zł, (48,95 zł -44%)
- Apache. Receptury. Wydanie II 49,00 zł, (36,75 zł -25%)
- Learning Spark. 2nd Edition 268,48 zł, (220,15 zł -18%)
- Learning Apache OpenWhisk. Developing Open Serverless Solutions 268,48 zł, (220,15 zł -18%)
Spis treści
mod_perl. Podręcznik programisty -- spis treści
Podziękowania (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ł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)
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. 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 Interfejs API modułu mod_perl (83)
Rozdział 3. 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)
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. 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ł 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)
Rozdział 8. 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)
Część III Oprogramowywanie cyklu życiowego serwera Apache (339)
Rozdział 11. PerlInitHandler (345)
- Wprowadzenie (345)
- 11.1. Przetwarzanie każdego żądania (346)
- 11.2. Przetwarzanie każdego żądania w danej dyrektywie zbiorczej (347)
- 11.3. Mierzenie czasu żądania (348)
- 11.4. Przerywanie cyklu obsługi żądania (350)
Rozdział 12. PerlTransHandler (353)
- Wprowadzenie (353)
- 12.1. Żądania pliku favicon.ico (354)
- 12.2. Rozpoznawanie serwerów wirtualnych w żądaniach (355)
- 12.3. Identyfikatory sesji w adresach URL (358)
- 12.4. Współdzielenie dyrektywy DocumentRoot (360)
- 12.5. Sterowanie wbudowanym serwerem proxy (362)
- 12.6. Redukcja wywołań funkcji stat() (364)
Rozdział 13. PerlAccessHandler, PerlAuthenHandler i PerlAuthzHandler (371)
- Wprowadzenie (371)
- 13.1. Prosta kontrola dostępu (372)
- 13.2. Ograniczanie dostępu "chciwym" klientom (375)
- 13.3. Identyfikacja podstawowa (376)
- 13.4. Ustawianie danych użytkownika (379)
- 13.5. Warunkowa identyfikacja (381)
- 13.6. Autoryzacja użytkownika (383)
- 13.7. Tworzenie własnego mechanizmu autoryzacji (386)
- 13.8. Identyfikacja przy użyciu funkcji skrótu (392)
Rozdział 14. PerlTypeHandler i PerlFixupHandler (401)
- Wprowadzenie (401)
- 14.1. Przywracanie domyślnego programu obsługi generowania zawartości (402)
- 14.2. Wybór programu obsługi na podstawie rozszerzenia nazwy pliku (404)
- 14.3. Zmiana typu MIME i programu obsługi (409)
- 14.4. Zmiana domyślnych typów MIME (413)
- 14.5. Własny mechanizm buforujący (414)
Rozdział 15. PerlHandler (421)
- Wprowadzenie (421)
- 15.1. Podstawowy PerlHandler (422)
- 15.2. Zarządzanie wieloma programami obsługi typu PerlHandler (425)
- 15.3. Wysyłanie poczty (427)
- 15.4. Filtrowanie generowanej zawartości (431)
- 15.5. Zapobieganie atakom skryptowym (435)
- 15.6. Moduł Text::Template (439)
- 15.7. Moduł HTML::Template (443)
- 15.8. Moduł Apache::ASP (445)
- 15.9. Pakiet Template Toolkit (450)
- 15.10. Moduł HTML::Embperl (454)
- 15.11. Moduł HTML::Mason (458)
- 15.12. Generowanie dokumentów XML (461)
- 15.13. Generowanie ogólnych dokumentów XML (464)
- 15.14. Dokumenty XML i arkusze XSLT (467)
- 15.15. Pakiet AxKit (470)
- 15.16. Tworzenie serwera SOAP (472)
Rozdział 16. PerlLogHandler i PerlCleanupHandler (481)
- Wprowadzenie (481)
- 16.1. Dziennik w bazie danych (482)
- 16.2. Dziennik w zwykłym pliku (485)
- 16.3. Zmiana wiersza żądania (488)
- 16.4. Zapisywanie niestandardowych informacji (489)
- 16.5. Rejestrowanie warunkowe (490)
- 16.6. Przechwytywanie błędów (491)
Rozdział 17. PerlChildInitHandler, PerlChildExitHandler, PerlRestartHandler i PerlDispatchHandler (499)
- Wprowadzenie (499)
- 17.1. Konfiguracja kodu poza obsługą żądania (501)
- 17.2. Uruchamianie kodu podczas restartu serwera (503)
- 17.3. Jednokrotne ładowanie konfiguracji (504)
- 17.4. Przeładowywanie skryptów Registry w procesie nadrzędnym (506)
- 17.5. Identyfikacja procesów potomnych (507)
- 17.6. Wczesne łączenie ze źródłem danych (509)
- 17.7. Śledzenie użycia modułów Perla (511)
- 17.8. Zastępowanie programów obsługi (512)
Dodatki (517)
Dodatek A Dostępne punkty zaczepienia i opcje kompilacji modułu mod_perl (519)
- Punkty zaczepienia modułu mod_perl (519)
- Opcje kompilacji modułu mod_perl (523)
Dodatek B Dostępne stałe (531)
- Wartości zwracane przez programy obsługi (531)
- Stałe określone przez protokół HTTP (531)
- Stałe używane przez programy obsługi dyrektyw (533)
- Stałe sterujące zapisem w dzienniku (536)
- Stałe serwera (536)
Dodatek C Zasoby związane z modułem mod_perl (537)
- Zasoby sieciowe (537)
- Książki (540)
Skorowidz (543)