PHP, MySQL i Apache dla każdego. Wydanie II - Helion

Tytuł oryginału: Sams Teach Yourself PHP, MySQL and Apache All in One, 2nd Edition
Tłumaczenie: Adam Byrtek (wprowadzenie, rozdz. 1 - 14), Jarosław Dobrzański (rozdz. 15 - 32)
ISBN: 83-7361-877-5
stron: 584, Format: B5, okładka: miękka
Data wydania: 2005-06-22
Księgarnia: Helion
Cena książki: 69,00 zł
Stwórz własną dynamiczną witrynę WWW.
- Zainstaluj i skonfiguruj PHP oraz serwery Apache i MySQL
- Naucz się zasad programowania w PHP
- Połącz aplikację WWW z bazą danych
- Poznaj sekrety zabezpieczania i optymalizowania aplikacji sieciowych
Dynamiczne witryny WWW spotykamy w sieci coraz częściej. Po mechanizmy bazodanowe i technologie skryptowe działające po stronie serwera sięgają już nie tylko twórcy portali i sklepów internetowych, ale także ci, którym jeszcze do niedawna wystarczał zwykły, statyczny HTML. Wśród technologii wykorzystywanych do tworzenia dynamicznych stron WWW od dawna prym wiedzie duet PHP i MySQL, instalowany na serwerach WWW pracujących pod kontrolą Apache'a. Te właśnie narzędzia są najczęściej wykorzystywane do tworzenia galerii, forów dyskusyjnych, giełd ogłoszeniowych i wielu innych aplikacji WWW.
"PHP, MySQL i Apache dla każdego. Wydanie II" to podręcznik dla wszystkich, którzy chcą poznać zasady tworzenia dynamicznych witryn WWW z wykorzystaniem najpopularniejszych obecnie technologii. Książka opisuje proces instalacji i konfiguracji Apache'a, MySQL-a i PHP na serwerze oraz na stacji roboczej, elementy języka PHP oraz zasady stosowania języka SQL. Na praktycznych przykładach przedstawia możliwości wykorzystywania PHP i bazy danych do tworzenia elementów dynamicznych stron WWW oraz całych projektów. Czytając ją, nauczysz się zabezpieczać aplikacje WWW oraz poprawiać wydajność ich działania.
- Instalowanie i konfigurowanie narzędzi
- Programowanie w języku PHP
- Funkcje, tablice i obiekty
- Przetwarzanie danych z formularzy
- Obsługa sesji oraz systemu plików
- Dynamiczne generowanie grafiki
- Integracja PHP z MySQL
- Operacje na danych w tabelach i język SQL
- Tworzenie prostych projektów aplikacji WWW
- Monitorowanie pracy aplikacji
- Mechanizmy bezpieczeństwa i uwierzytelniania użytkowników
- Poprawa wydajności aplikacji
Osoby które kupowały "PHP, MySQL i Apache dla każdego. Wydanie II", wybierały także:
- Apache 2. Leksykon kieszonkowy 24,90 zł, (12,45 zł -50%)
- Apache Kafka. Kurs video. Przetwarzanie danych w czasie rzeczywistym 89,00 zł, (66,75 zł -25%)
- Apache. Receptury. Wydanie II 49,00 zł, (36,75 zł -25%)
- MongoDB for Jobseekers 84,60 zł, (71,91 zł -15%)
- Streaming Architecture. New Designs Using Apache Kafka and MapR Streams 84,99 zł, (72,24 zł -15%)
Spis treści
PHP, MySQL i Apache dla każdego. Wydanie II -- spis treści
O Autorach (15)
Podziękowania (17)
Wprowadzenie (19)
Część I Podstawy (23)
Rozdział 1. Szybka instalacja (25)
- Instalacja w systemie Linux/Unix (25)
- Instalacja MySQL (26)
- Instalacja Apache (27)
- Instalacja PHP (27)
- Instalacja w systemie Windows (29)
- Instalacja MySQL (29)
- Instalacja Apache (30)
- Instalacja PHP (32)
- Rozwiązywanie problemów (34)
Rozdział 2. Instalacja i konfiguracja MySQL (37)
- Wersja aktualna i przyszłe wersje MySQL (37)
- Jak zdobyć MySQL (38)
- Instalacja MySQL w systemie Linux/Unix (38)
- Instalacja MySQL w systemie Windows (39)
- Rozwiązywanie problemów instalacji (43)
- Podstawy bezpieczeństwa (44)
- Uruchamianie MySQL (45)
- Zabezpieczanie połączenia MySQL (45)
- Wprowadzenie do systemu uprawnień MySQL (46)
- Dwustopniowa autoryzacja (47)
- Korzystanie z systemu uprawnień (48)
- Dodawanie użytkowników (48)
- Usuwanie uprawnień (50)
- Podsumowanie (51)
- Pytania i odpowiedzi (51)
- Warsztaty (52)
- Test (52)
- Odpowiedzi (52)
- Ćwiczenia (52)
Rozdział 3. Instalacja i konfiguracja Apache (53)
- Wersja aktualna i przyszłe wersje Apache (53)
- Wybór sposobu instalacji (54)
- Kompilacja kodu źródłowego (54)
- Instalacja dystrybucji binarnej (54)
- Instalacja Apache w systemie Linux/Unix (55)
- Pobieranie kodu źródłowego (55)
- Rozpakowanie kodu źródłowego (55)
- Przygotowania do kompilacji Apache (56)
- Budowanie i instalacja Apache (57)
- Instalacja Apache w systemie Windows (57)
- Format pliku konfiguracyjnego Apache (60)
- Dyrektywy (60)
- Pojemniki (62)
- Instrukcje warunkowe (63)
- ServerRoot (64)
- Pliki konfiguracyjne dla katalogów (64)
- Pliki dziennika Apache (65)
- access_log (65)
- error_log (66)
- Pozostałe pliki (66)
- Polecenia związane z Apache (66)
- Serwer Apache (66)
- Skrypt kontrolny Apache (68)
- Pierwsze uruchomienie Apache (68)
- Sprawdzanie pliku konfiguracyjnego (68)
- Uruchamianie Apache (69)
- Rozwiązywanie problemów (69)
- Inny serwer WWW (69)
- Brak uprawnień do portu (70)
- Dostęp zabroniony (70)
- Złe parametry grupy (71)
- Podsumowanie (71)
- Pytania i odpowiedzi (71)
- Warsztaty (72)
- Test (72)
- Odpowiedzi (72)
- Ćwiczenia (72)
Rozdział 4. Instalacja i konfiguracja PHP (73)
- Wersja aktualna i przyszłe wersje PHP (73)
- Kompilacja PHP w systemie Linux/Unix (74)
- Dodatkowe opcje konfiguracyjne (75)
- Integracja PHP z Apache w systemie Linux/Unix (75)
- Instalacja PHP w systemie Windows (76)
- Integracja PHP z Apache w systemie Windows (76)
- Plik php.ini (77)
- Testowanie (78)
- Gdzie znaleźć pomoc (78)
- Podstawy skryptów PHP (80)
- Początek i koniec bloku instrukcji PHP (81)
- Instrukcja echo i funkcja print() (82)
- Łączenie HTML i PHP (83)
- Komentarze w kodzie PHP (83)
- Podsumowanie (85)
- Pytania i odpowiedzi (85)
- Warsztaty (86)
- Test (86)
- Odpowiedzi (86)
- Ćwiczenia (86)
Część II Struktura języka PHP (87)
Rozdział 5. Podstawowe elementy języka PHP (89)
- Zmienne (89)
- Zmienne globalne i superglobalne (91)
- Typy danych (92)
- Zmiana typu za pomocą settype() (94)
- Zmiana typu poprzez rzutowanie (95)
- Po co sprawdzać typ? (97)
- Operatory i wyrażenia (97)
- Operator przypisania (98)
- Operatory arytmetyczne (98)
- Operator konkatenacji (98)
- Złożony operator przypisania (99)
- Inkrementacja i dekrementacja wartości zmiennej całkowitej (100)
- Operatory porównania (101)
- Tworzenie złożonych wyrażeń za pomocą operatorów logicznych (102)
- Kolejność operatorów (103)
- Stałe (104)
- Stałe predefiniowane (105)
- Podsumowanie (105)
- Pytania i odpowiedzi (105)
- Warsztaty (106)
- Test (106)
- Odpowiedzi (107)
- Ćwiczenia (107)
Rozdział 6. Sterowanie przepływem w PHP (109)
- Zmiana przepływu (110)
- Instrukcja if (110)
- Użycie klauzuli else w instrukcji if (111)
- Użycie klauzuli else if w instrukcji if (111)
- Instrukcja switch (113)
- Operator ? (114)
- Pętle (115)
- Instrukcja while (115)
- Instrukcja do...while (116)
- Instrukcja for (117)
- Przerywanie pętli za pomocą instrukcji break (118)
- Pomijanie iteracji za pomocą instrukcji continue (120)
- Zagnieżdżone pętle (121)
- Bloki kodu PHP (122)
- Podsumowanie (124)
- Pytania i odpowiedzi (124)
- Warsztaty (124)
- Test (125)
- Odpowiedzi (125)
- Ćwiczenie (126)
Rozdział 7. Funkcje (127)
- Czym jest funkcja? (127)
- Wywoływanie funkcji (128)
- Definiowanie funkcji (129)
- Zwracanie wartości przez funkcje użytkownika (131)
- Zasięg zmiennych (132)
- Wywoływanie zmiennych za pomocą instrukcji global (133)
- Przechowywanie wartości pomiędzy wywołaniami funkcji za pomocą instrukcji static (135)
- Więcej o argumentach (137)
- Przypisywanie zmiennym wartości domyślnych (137)
- Przekazywanie zmiennych przez referencję (139)
- Sprawdzanie istnienia funkcji (140)
- Podsumowanie (142)
- Pytania i odpowiedzi (142)
- Warsztaty (142)
- Test (142)
- Odpowiedzi (143)
- Ćwiczenie (143)
Rozdział 8. Tablice i obiekty (145)
- Czym jest tablica? (145)
- Tworzenie tablic (146)
- Tworzenie tablic asocjacyjnych (147)
- Tworzenie tablic wielowymiarowych (147)
- Niektóre funkcje operujące na tablicach (149)
- Tworzenie obiektu (151)
- Własności obiektów (152)
- Metody obiektów (153)
- Konstruktor (155)
- Dziedziczenie (155)
- Podsumowanie (157)
- Pytania i odpowiedzi (157)
- Warsztaty (157)
- Test (157)
- Odpowiedzi (158)
- Ćwiczenia (158)
Część III Pierwsze kroki z kodem (159)
Rozdział 9. Ciągi znaków, data i czas (161)
- Formatowanie ciągów znaków (162)
- Funkcja printf() (162)
- Zamiana argumentów (168)
- Przechowywanie sformatowanych ciągów znaków (169)
- Analizowanie ciągów znaków (170)
- Uwaga na temat indeksowania ciągów znaków (170)
- Sprawdzanie długości ciągu za pomocą funkcji strlen() (170)
- Znajdowanie podciągu za pomocą strstr() (171)
- Określanie pozycji podciągu za pomocą funkcji strpos() (171)
- Pobieranie części ciągu za pomocą funkcji substr() (172)
- Podział ciągu na słowa za pomocą funkcji strtok() (172)
- Operacje na ciągach znaków (174)
- Oczyszczanie ciągu za pomocą funkcji trim(), ltrim(), rtrim() i strip_tags() (174)
- Zmiana fragmentu ciągu za pomocą funkcji substr_replace() (175)
- Zamiana podciągów za pomocą funkcji str_replace() (176)
- Zmiana wielkości liter (176)
- Zawijanie tekstu za pomocą funkcji wordwrap() i nl2br() (177)
- Dzielenie ciągów za pomocą funkcji explode() (179)
- Funkcje operujące na dacie i czasie (179)
- Pobieranie bieżącej daty za pomocą funkcji time() (179)
- Konwersja znacznika czasu za pomocą funkcji getdate() (180)
- Formatowanie znacznika czasu za pomocą funkcji date() (181)
- Tworzenie znacznika czasu za pomocą funkcji mktime() (183)
- Weryfikacja daty za pomocą funkcji checkdate() (184)
- Podsumowanie (185)
- Pytania i odpowiedzi (185)
- Warsztaty (185)
- Test (185)
- Odpowiedzi (186)
- Ćwiczenia (186)
Rozdział 10. Formularze (189)
- Tworzenie prostego formularza (189)
- Przekazywanie informacji w tablicach (191)
- Łączenie kodu HTML i PHP w jednym skrypcie (194)
- Zapisywanie informacji o stanie w ukrytym polu (196)
- Przekierowania (197)
- Wysyłanie poczty elektronicznej (199)
- Konfiguracja systemu (199)
- Tworzenie formularza (200)
- Skrypt wysyłający wiadomość (201)
- Formatowanie wiadomości za pomocą HTML (202)
- Przesyłanie plików (204)
- Tworzenie formularza wysyłającego plik (204)
- Skrypt obsługujący przesłany plik (206)
- Podsumowanie (207)
- Warsztaty (208)
- Test (208)
- Odpowiedzi (208)
- Ćwiczenia (208)
Rozdział 11. Cookies i sesje (209)
- Wprowadzenie do cookies (209)
- Anatomia cookie (210)
- Tworzenie cookie (211)
- Usuwanie cookie (212)
- Wprowadzenie do sesji (212)
- Otwieranie sesji (213)
- Zmienne sesyjne (214)
- Przekazywanie identyfikatora sesji w adresie (218)
- Niszczenie sesji i usuwanie zmiennych (218)
- Zastosowania sesji (219)
- Obsługa zarejestrowanych użytkowników (219)
- Obsługa ustawień użytkownika (219)
- Podsumowanie (220)
- Pytania i odpowiedzi (220)
- Warsztaty (220)
- Test (220)
- Odpowiedzi (221)
- Ćwiczenie (221)
Rozdział 12. Pliki i katalogi (223)
- Dołączanie plików za pomocą funkcji include() (223)
- Zwracanie wartości z dołączonego dokumentu (224)
- Instrukcja include() wewnątrz struktur sterujących (225)
- Użycie include_once() (226)
- Dyrektywa include_path (226)
- Weryfikacja plików (227)
- Sprawdzanie, czy dany plik istnieje, za pomocą funkcji file_exists() (227)
- Plik czy katalog? (228)
- Sprawdzanie uprawnień pliku (228)
- Sprawdzanie rozmiaru pliku za pomocą funkcji filesize() (229)
- Pobieranie informacji o datach związanych z plikiem (229)
- Funkcja wyświetlająca informacje o pliku (230)
- Tworzenie i usuwanie plików (231)
- Otwieranie plików do zapisu, odczytu i dopisywania (232)
- Odczytywanie danych z pliku (233)
- Odczytywanie wierszy za pomocą funkcji fgets() i feof() (233)
- Odczytywanie określonej ilości danych za pomocą funkcji fread() (234)
- Odczytywanie kolejnych znaków za pomocą funkcji fgetc() (236)
- Zapisywanie i dopisywanie danych do pliku (237)
- Zapisywanie danych do pliku za pomocą funkcji fwrite() i fputs() (237)
- Blokowanie plików za pomocą funkcji flock() (238)
- Operacje na katalogach (239)
- Tworzenie katalogów za pomocą funkcji mkdir() (239)
- Usuwanie katalogu za pomocą rmdir() (240)
- Otwieranie katalogu za pomocą funkcji opendir() (240)
- Odczytywanie zawartości katalogu za pomocą funkcji readdir() (240)
- Podsumowanie (242)
- Pytania i odpowiedzi (242)
- Warsztaty (242)
- Test (242)
- Odpowiedzi (243)
- Ćwiczenia (243)
Rozdział 13. Środowisko serwera (245)
- Otwieranie potoku za pomocą funkcji popen() (245)
- Przekazywanie poleceń do powłoki za pomocą funkcji exec() (247)
- Wykonywanie poleceń za pomocą funkcji system() lub passthru() (249)
- Podsumowanie (250)
- Pytania i odpowiedzi (250)
- Warsztaty (251)
- Test (251)
- Odpowiedzi (251)
Rozdział 14. Obrazki (253)
- Proces powstawania obrazka (253)
- Kilka słów o kolorze (253)
- Konieczne zmiany w PHP (254)
- Pobieranie dodatkowych bibliotek (254)
- Rysowanie nowego obrazka (255)
- Rysowanie kształtów i linii (255)
- Wypełnianie kształtów kolorem (257)
- Rysowanie wykresów (258)
- Modyfikacja istniejących obrazków (262)
- Tworzenie obrazków na podstawie danych przesłanych przez użytkownika (264)
- Podsumowanie (268)
- Pytania i odpowiedzi (268)
- Warsztaty (268)
- Test (269)
- Odpowiedzi (269)
- Ćwiczenie (269)
Część IV Integracja PHP i MySQL (271)
Rozdział 15. Tajniki procesu projektowania bazy danych (273)
- Rola dobrego projektu bazy danych (273)
- Typy relacji między tabelami (274)
- Relacje jeden do jednego (275)
- Relacje jeden do wielu (275)
- Relacje wiele do wielu (276)
- Normalizacja (277)
- Problemy z tabelą prostą (278)
- Pierwsza postać normalna (278)
- Druga postać normalna (279)
- Trzecia postać normalna (280)
- Postępowanie zgodnie z procesem projektowania (280)
- Podsumowanie (281)
- Pytania i odpowiedzi (282)
- Warsztaty (282)
- Test (282)
- Odpowiedzi (282)
- Ćwiczenie (282)
Rozdział 16. Podstawowe polecenia SQL (283)
- Typy danych w MySQL (284)
- Liczbowe typy danych (284)
- Typy czasu i daty (285)
- Typy łańcuchowe (286)
- Składnia tworzenia tabel (287)
- Używanie polecenia INSERT (288)
- Bliższe spojrzenie na INSERT (288)
- Stosowanie polecenia SELECT (290)
- Porządkowanie wyników zwracanych przez SELECT (291)
- Ograniczanie wyników (291)
- Używanie WHERE w zapytaniach (292)
- Stosowanie operatorów w klauzuli WHERE (293)
- Porównywanie łańcuchów za pomocą LIKE (294)
- Selekcja z kilku tabel (294)
- Używanie JOIN (296)
- Modyfikowanie rekordów za pomocą polecenia UPDATE (298)
- Warunkowe instrukcje UPDATE (300)
- Stosowanie bieżących wartości kolumn z UPDATE (300)
- Używanie polecenia REPLACE (301)
- Stosowanie polecenia DELETE (302)
- Warunkowa instrukcja DELETE (303)
- Często stosowane funkcje MySQL operujące na ciągach tekstowych (304)
- Funkcje długości i konkatenacji (304)
- Funkcje przycinające i dopełniające (306)
- Funkcje lokalizacji i pozycji (308)
- Funkcje operujące na podciągach (308)
- Funkcje modyfikujące ciągi (309)
- Korzystanie z funkcji daty i czasu w MySQL (310)
- Operowanie na dniach (311)
- Operowanie na miesiącach i latach (313)
- Operowanie na tygodniach (314)
- Operowanie na godzinach, minutach i sekundach (315)
- Formatowanie daty i czasu w MySQL (316)
- Działania arytmetyczne na datach w MySQL (318)
- Funkcje specjalne i możliwości w zakresie konwersji (320)
- Podsumowanie (322)
- Pytania i odpowiedzi (323)
- Warsztaty (324)
- Test (324)
- Odpowiedzi (325)
- Ćwiczenie (325)
Rozdział 17. Interakcja z MySQL z poziomu PHP (327)
- Łączenie się z MySQL poprzez PHP (327)
- Używanie mysql_connect() (328)
- Wykonywanie zapytań (329)
- Odbieranie komunikatów o błędach (330)
- Operowanie na danych z bazy MySQL (331)
- Wstawianie danych z poziomu PHP (331)
- Pobieranie danych z bazy w PHP (335)
- Pozostałe funkcje MySQL w PHP (336)
- Podsumowanie (337)
- Warsztaty (337)
- Test (337)
- Odpowiedzi (337)
Część V Proste projekty (339)
Rozdział 18. Zarządzanie prostą listą mailingową (341)
- Opracowywanie mechanizmu subskrypcji (341)
- Tworzenie tabeli subskrybentów (342)
- Tworzenie formularza subskrypcji (342)
- Budowa mechanizmu mailingu (348)
- Podsumowanie (351)
- Pytania i odpowiedzi (352)
- Warsztaty (352)
- Test (352)
- Odpowiedzi (352)
Rozdział 19. Tworzenie internetowej książki adresowej (353)
- Planowanie i tworzenie tabel w bazie danych (353)
- Tworzenie menu (356)
- Tworzenie mechanizmu dodawania rekordów (356)
- Przeglądanie rekordów (361)
- Tworzenie mechanizmu usuwania rekordów (367)
- Uzupełnianie istniejących rekordów (369)
- Podsumowanie (374)
- Warsztaty (375)
- Test (375)
- Odpowiedzi (375)
- Ćwiczenia (375)
Rozdział 20. Tworzenie prostego forum dyskusyjnego (377)
- Projektowanie tabel w bazie danych (377)
- Tworzenie formularzy wprowadzania danych i skryptów (378)
- Wyświetlanie listy tematów (381)
- Wyświetlanie postów w temacie (385)
- Dodawanie postu w wybranym temacie (388)
- Podsumowanie (391)
- Pytania i odpowiedzi (392)
- Warsztaty (392)
- Test (392)
- Odpowiedzi (392)
- Ćwiczenie (393)
Rozdział 21. Tworzenie witryny sklepu internetowego (395)
- Planowanie i tworzenie tabel w bazie danych (395)
- Wstawianie rekordów do tabeli sklep_kategorie (397)
- Wstawianie rekordów do tabeli sklep_artykuly (397)
- Wstawianie rekordów do tabeli sklep_art_rozmiar (398)
- Wstawianie rekordów do tabeli sklep_art_kolor (399)
- Wyświetlanie kategorii artykułów (399)
- Wyświetlanie artykułów (402)
- Podsumowanie (405)
- Warsztaty (405)
- Test (405)
- Odpowiedzi (406)
Rozdział 22. Tworzenie mechanizmu koszyka z zakupami (407)
- Planowanie i tworzenie tabel (407)
- Integracja koszyka z witryną sklepową (409)
- Dodawanie artykułów do koszyka (412)
- Przeglądanie zawartości koszyka (413)
- Usuwanie artykułów z koszyka (416)
- Sposoby dokonywania płatności i sekwencja kasowa (416)
- Tworzenie formularza kasowego (417)
- Realizowanie czynności kasowych (417)
- Podsumowanie (418)
- Warsztaty (418)
- Test (419)
- Odpowiedzi (419)
Rozdział 23. Tworzenie prostego kalendarza (421)
- Tworzenie prostego kalendarza wyświetlanego na ekranie (421)
- Sprawdzenie danych przesłanych przez użytkownika (422)
- Tworzenie formularza HTML (423)
- Tworzenie tabeli kalendarza (425)
- Dodawanie terminów do kalendarza (428)
- Tworzenie biblioteki kalendarza (435)
- Podsumowanie (440)
- Pytania i odpowiedzi (441)
- Warsztaty (441)
- Test (441)
- Odpowiedzi (441)
- Ćwiczenie (441)
Rozdział 24. Ograniczanie dostępu do aplikacji (443)
- Istota uwierzytelniania (443)
- Uwierzytelnianie klienta (444)
- Możliwości funkcjonalne modułu uwierzytelniającego serwera Apache (445)
- Uwierzytelnianie bazujące na plikach (446)
- Kontrola dostępu bazująca na pliku bazy danych (448)
- Apache jako narzędzie kontroli dostępu (449)
- Wprowadzanie reguł dostępu (449)
- Interpretacja reguł dostępu (451)
- Wiązane zastosowanie metod kontroli dostępu (452)
- Ograniczenie dostępu na podstawie metod HTTP (453)
- Ograniczenie dostępu na podstawie wartości cookies (454)
- Tworzenie tabeli uprawnionych użytkowników (454)
- Tworzenie formularza logowania i skryptu (455)
- Sprawdzanie cookie uwierzytelniającego (458)
- Podsumowanie (459)
- Pytania i odpowiedzi (459)
- Warsztaty (460)
- Test (460)
- Odpowiedzi (460)
- Ćwiczenie (460)
Rozdział 25. Monitorowanie i prowadzenie dzienników aktywności serwera (461)
- Standardowe odnotowywanie dostępu do serwera (461)
- Ustalanie treści dzienników (462)
- Odnotowywanie dostępów w plikach (465)
- Odnotowywanie dostępów w programie (466)
- Standardowy tryb odnotowywania błędów serwera Apache (467)
- Odnotowywanie błędów w pliku (467)
- Odnotowywanie błędów w programie (467)
- Demon syslog jako argument (467)
- Dyrektywa LogLevel (468)
- Zarządzanie dziennikami serwera Apache (468)
- Ustalanie nazw hostów (469)
- Rotacja dzienników (469)
- Łączenie i podział dzienników (470)
- Analiza dzienników (470)
- Monitorowanie dzienników błędów (470)
- Odnotowywanie informacji w bazie danych (471)
- Tworzenie tabeli w bazie danych (471)
- Tworzenie skryptu PHP odnotowującego dane (471)
- Tworzenie przykładowych raportów (472)
- Podsumowanie (475)
- Pytania i odpowiedzi (475)
- Warsztaty (475)
- Test (475)
- Odpowiedzi (475)
Rozdział 26. Lokalizacja aplikacji (477)
- Internacjonalizacja i lokalizacja (477)
- Zestawy znaków (478)
- Modyfikacje środowiska (479)
- Zmiany w konfiguracji serwera Apache (479)
- Zmiany w konfiguracji PHP (480)
- Zmiany w konfiguracji MySQL (480)
- Tworzenie zlokalizowanej struktury strony (481)
- Podsumowanie (486)
- Pytania i odpowiedzi (487)
- Warsztaty (487)
- Test (487)
- Odpowiedzi (487)
Część VI Administrowanie i dostrajanie (489)
Rozdział 27. Poprawianie wydajności i wirtualny hosting na serwerze Apache (491)
- Kwestie skalowalności (492)
- Ograniczenia systemu operacyjnego (492)
- Ustawienia serwera Apache związane z wydajnością (494)
- Testowanie serwera pod obciążeniem przy użyciu ApacheBench (495)
- Aktywne dostrajanie wydajności (497)
- Odwzorowywanie plików w pamięci (497)
- Rozkład obciążenia (498)
- Buforowanie (498)
- Redukcja ilości transmitowanych danych (498)
- Ustawienia sieci (499)
- Zapobieganie nadużyciom (499)
- Roboty (499)
- Implementacja wirtualnego hostingu (500)
- Wirtualny hosting bazujący na adresach IP (501)
- Wirtualny hosting bazujący na nazwach (501)
- Masowy hosting wirtualny (503)
- Podsumowanie (504)
- Pytania i odpowiedzi (505)
- Warsztaty (506)
- Test (506)
- Odpowiedzi (506)
Rozdział 28. Bezpieczny serwer WWW (507)
- Potrzeba bezpieczeństwa (507)
- Protokół SSL (508)
- Rozwiązanie kwestii poufności (508)
- Rozwiązanie kwestii nienaruszalności (510)
- Rozwiązanie kwestii uwierzytelniania (510)
- Uzyskiwanie i instalacja narzędzi SSL (513)
- OpenSSL (513)
- Moduł mod_ssl serwera Apache (514)
- Zarządzanie certyfikatami (515)
- Tworzenie pary kluczy (515)
- Tworzenie prośby o podpisanie certyfikatu (517)
- Tworzenie certyfikatu podpisanego przez nas samych (518)
- Konfiguracja SSL (518)
- Uruchamianie serwera (519)
- Podsumowanie (519)
- Pytania i odpowiedzi (519)
- Warsztaty (520)
- Test (520)
- Odpowiedzi (520)
Rozdział 29. Optymalizacja i dostrajanie MySQL (521)
- Tworzenie zoptymalizowanej platformy (521)
- Stosowanie funkcji benchmark() (522)
- Opcje inicjalizacyjne MySQL (523)
- Kluczowe parametry startowe (524)
- Optymalizacja struktury tabel (525)
- Optymalizacja zapytań (525)
- Korzystanie z polecenia FLUSH (527)
- Korzystanie z polecenia SHOW (528)
- Pobieranie informacji o bazach danych i tabelach (529)
- Pobieranie informacji o strukturze tabel (530)
- Pobieranie statusu systemu (531)
- Podsumowanie (533)
- Pytania i odpowiedzi (534)
- Warsztaty (534)
- Test (534)
- Odpowiedzi (535)
- Ćwiczenia (535)
Rozdział 30. Aktualizacja oprogramowania (537)
- Trzymanie ręki na pulsie (537)
- Kiedy aktualizować? (538)
- Aktualizacja MySQL (539)
- Aktualizacja Apache (539)
- Modyfikowanie Apache bez dokonywania aktualizacji (540)
- Aktualizacja PHP (541)
- Podsumowanie (541)
- Warsztaty (541)
- Test (542)
- Odpowiedzi (542)
Część VII Spojrzenie w przyszłość (543)
Rozdział 31. Możliwości funkcjonalne i wsteczna kompatybilność PHP 5.0 (545)
- Co było złe w PHP 4? (545)
- Nowy model obiektowy (546)
- Pozostałe nowe możliwości (548)
- SQLite (548)
- Obsługa XML-a (549)
- A więc kiedy instalować PHP 5? (549)
- Kompatybilność wsteczna (549)
- Podsumowanie (550)
- Pytania i odpowiedzi (550)
Rozdział 32. Możliwości funkcjonalne i wsteczna kompatybilność MySQL 4.1 (551)
- Korzystanie z podzapytań (551)
- Przykład systemu śledzącego czas pracy z zastosowaniem podzapytań (552)
- Ulepszenia dotyczące internacjonalizacji (555)
- Inne nowe możliwości funkcjonalne (555)
- Spojrzenie w przyszłość - MySQL 5.0 (556)
- Podsumowanie (556)
- Pytania i odpowiedzi (557)
- Warsztaty (557)
- Test (557)
- Odpowiedzi (557)
Dodatki (559)
Skorowidz (561)





