Linux_Apache_MySQL_i_PHP_Zaawansowane_programowanie_lapzap.pdf

(359 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREœCI
Linux, Apache, MySQL i PHP.
Zaawansowane programowanie
Autorzy: Jason Gerner, Morgan L. Owens,
Elizabeth Naramore, Matt Warden, Jeremy Stolz
T³umaczenie: Wojciech Moch
ISBN: 83-246-0489-8
Tytu³ orygina³u:
Professional LAMP: Linux,
Apache, MySQL and PHP Web Development
Format: B5, stron: 432
Zaprojektuj profesjonalne witryny WWW
• Poznaj zasady programowania obiektowego w PHP5.
• Wykorzystaj pe³niê mo¿liwoœci bazy MySQL.
• Zabezpiecz witryny WWW przed atakami hakerów.
Po³¹czenie mo¿liwoœci systemu operacyjnego Linux, serwera WWW Apache, bazy
danych MySQL i jêzyka PHP pozwala na tworzenie i utrzymywanie rozbudowanych
aplikacji internetowych. Popularnoœæ tych narzêdzi, czêsto okreœlanych za pomoc¹
akronimu LAMP (Linux, Apache, MySQL, PHP), jest efektem ich elastycznoœci,
wydajnoœci i doskona³ej interakcji pomiêdzy elementami tego zestawu. Nie bez
znaczenia jest tak¿e fakt, ¿e dostêpne s¹ one bezp³atnie, na licencji open source,
co zwalnia zarówno twórców aplikacji, jak i ich u¿ytkowników z koniecznoœci
ponoszenia jakichkolwiek op³at licencyjnych.
Ksi¹¿ka „Linux, Apache, MySQL i PHP. Zaawansowane programowanie” opisuje
metody tworzenia wydajnych aplikacji WWW. Czytaj¹c j¹, poznasz mo¿liwoœci jêzyka
PHP5 w zakresie programowania obiektowego i nauczysz siê formu³owaæ z³o¿one
zapytania SQL. Dowiesz siê, jak optymalnie skonfigurowaæ serwer WWW Apache,
zabezpieczaæ aplikacje WWW przed atakami i korzystaæ z modu³ów rozszerzaj¹cych,
takich jak PEAR i PECL. Znajdziesz tu równie¿ informacje o systemach zarz¹dzania
treœci¹, technologii AJAX i mechanizmach buforowania dostêpnych dla PHP.
• Obs³uga wyj¹tków w PHP
• Programowanie obiektowe
• Z³o¿one zapytania SQL
• Konfiguracja PHP5
• Uwierzytelnianie u¿ytkowników witryn WWW
• Korzystanie z pakietu PEAR
• Optymalizacja wydajnoœci aplikacji
• Generowanie z poziomu PHP plików PDF, SWF i grafiki
• Tworzenie interfejsów u¿ytkownika za pomoc¹ AJAX
• Zarz¹dzanie treœci¹ serwisów WWW
Wykorzystuj w pracy nowoczesne narzêdzia
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOœCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści
O autorach .................................................................................................................. 11
Wprowadzenie ............................................................................................................. 13
Rozdział 1. Co nowego w PHP 5 ..............................................................................................................17
Zmiany w obsłudze obiektów ........................................................................................ 17
Przekazywanie obiektów .......................................................................................... 17
Wyjątki .................................................................................................................. 18
Interfejsy ............................................................................................................... 21
Iteratory ................................................................................................................ 21
Konstruktory i destruktory ....................................................................................... 23
Modyfikatory dostępu ............................................................................................. 23
Słowo kluczowe final .............................................................................................. 23
Słowo kluczowe static ............................................................................................ 23
Słowo kluczowe abstract ......................................................................................... 24
Funkcje przeciążające metody wbudowane ............................................................... 25
Nowe funkcje .............................................................................................................. 26
Inne zmiany w PHP 5 ................................................................................................... 29
Zmiany w konfiguracji ............................................................................................. 29
MySQLi ................................................................................................................. 30
Obsługa XML ......................................................................................................... 34
Rozszerzenie Tidy ................................................................................................... 35
SQLite ................................................................................................................... 35
Podsumowanie ............................................................................................................ 35
Rozdział 2. Programowanie obiektowe w PHP 5 ................................................................................. 37
Programowanie proceduralne a programowanie obiektowe .............................................. 37
Definicje podstawowych klas ................................................................................... 38
Widoczność ........................................................................................................... 42
Konstruktory i destruktory ....................................................................................... 44
Słowo kluczowe static ............................................................................................ 46
Stałe klasy ............................................................................................................ 47
Przypisania i klonowanie ......................................................................................... 48
Dziedziczenie i interfejsy .............................................................................................. 50
Dziedziczenie ......................................................................................................... 50
Interfejsy ............................................................................................................... 55
6
Spis treści
Metody magiczne ........................................................................................................ 57
__call .................................................................................................................... 57
__get i __set .......................................................................................................... 58
__sleep ................................................................................................................. 59
__wakeup .............................................................................................................. 59
__toString .............................................................................................................. 63
Podsumowanie ............................................................................................................ 65
Rozdział 3. Niejasne elementy języka PHP ........................................................................................... 67
Funkcje tablicowe i funkcje wywołań zwrotnych ............................................................... 68
Stosowanie wywołań zwrotnych ............................................................................... 69
array_map() ........................................................................................................... 71
array_walk() ........................................................................................................... 72
array_filter() i preg_grep() ........................................................................................ 74
preg_replace_callback() .......................................................................................... 75
call_user_func_array() i call_user_func() ................................................................... 77
create_function() .................................................................................................... 79
Ostatnie uwagi o funkcjach tablicowych .................................................................... 81
Funkcja glob() ............................................................................................................. 83
Strumienie PHP ........................................................................................................... 84
Tworzenie i używanie strumieni ................................................................................ 85
Dwa przykłady działania strumieni ............................................................................ 87
Podsumowanie ............................................................................................................ 97
Rozdział 4. Zaawansowany MySQL ...................................................................................................... 99
Podstawy
powtórka ................................................................................................. 99
Tworzenie bazy danych ......................................................................................... 100
Dopisywanie informacji ......................................................................................... 101
Odczytywanie informacji ........................................................................................ 102
Poprawianie informacji .......................................................................................... 103
Usuwanie informacji ............................................................................................. 103
Odpytywanie wielu tabel ............................................................................................. 104
Złączenia wewnętrzne ........................................................................................... 104
Złączenia zewnętrzne ............................................................................................ 107
Unie .................................................................................................................... 109
Przeszukiwanie tekstu ............................................................................................... 113
Włączanie przeszukiwania tekstu ........................................................................... 113
Tworzenie zapytań z przeszukiwaniem tekstu .......................................................... 114
Ograniczenia ........................................................................................................ 115
Tabele InnoDB .......................................................................................................... 115
Zalety tabel InnoDB .............................................................................................. 115
Wady tabel InnoDB ............................................................................................... 116
Używanie tabel InnoDB ......................................................................................... 116
Kontrola dostępu ....................................................................................................... 121
Administracja użytkownikami ................................................................................. 121
Ograniczenia serwera ........................................................................................... 128
Analizowanie bazy danych .......................................................................................... 129
SHOW COLUMNS ................................................................................................. 129
SHOW CREATE TABLE ........................................................................................... 129
SHOW DATABASES ............................................................................................... 130
SHOW GRANTS .................................................................................................... 130
Spis treści
7
Konserwacja bazy danych ........................................................................................... 131
Tworzenie kopii bezpieczeństwa ............................................................................ 131
Odtwarzanie danych z kopii bezpieczeństwa ........................................................... 132
Podsumowanie .......................................................................................................... 132
Rozdział 5. Konfiguracja PHP ...............................................................................................................133
Modyfikowanie pliku php.ini ....................................................................................... 133
Zalecane poprawki w konfiguracji .......................................................................... 133
Nowe elementy konfiguracji PHP 5 ......................................................................... 135
Konfiguracja PHP w czasie pracy ................................................................................. 137
Odczytywanie bieżących ustawień .......................................................................... 137
Dynamiczne modyfikowanie konfiguracji ................................................................. 142
Automatyczna kontrola wersji i funkcji .................................................................... 145
Podsumowanie .......................................................................................................... 158
Rozdział 6. Sztuczki z serwerem Apache ...........................................................................................159
Przepisywanie adresów URL ....................................................................................... 159
Włączanie modułu mod_rewrite ............................................................................. 160
Dyrektywa RewriteRule ......................................................................................... 161
Dyrektywa RewriteCond ........................................................................................ 170
Dyrektywa RewriteBase ......................................................................................... 175
Dyrektywa RewriteLog ........................................................................................... 176
Dyrektywa RewriteLogLevel ................................................................................... 176
Sprawdzanie poprawności adresów URL ...................................................................... 176
Kompresowanie treści ............................................................................................... 178
Używanie modułu mod_deflate .............................................................................. 178
Jaka jest skuteczność działania modułu mod_deflate? ............................................ 181
Włączanie kompresji dla skryptów PHP ................................................................... 181
Używanie bazy danych MySQL w połączeniu z serwerem Apache .................................... 182
Konfigurowanie bazy danych .................................................................................. 183
Instalowanie modułu ............................................................................................ 183
Konfigurowanie i używanie .................................................................................... 184
Apache i SSL ............................................................................................................ 189
Serwer Apache jako repozytorium plików ..................................................................... 193
Windows 2000/XP ............................................................................................... 195
Mac OS X ............................................................................................................ 198
Podsumowanie .......................................................................................................... 199
Rozdział 7. Bezpieczeństwo witryn ....................................................................................................201
Kontrola dostępu ....................................................................................................... 201
Uwierzytelnianie poprzez serwer Apache ................................................................. 201
Uwierzytelnianie poprzez język PHP ........................................................................ 202
Ataki na witryny WWW ................................................................................................ 215
Nadużywanie opcji register_globals ........................................................................ 215
Ataki wstrzykiwania instrukcji SQL ......................................................................... 216
Skrypty międzywitrynowe ....................................................................................... 218
Inne problemy ........................................................................................................... 219
Podsumowanie .......................................................................................................... 220
8
Spis treści
Rozdział 8. PEAR i PECL .........................................................................................................................221
Czym jest pakiet PEAR? .................................................................................................. 221
Czym jest PECL? ............................................................................................................. 222
Projekt PEAR ............................................................................................................. 222
Menedżer pakietów PEAR ...................................................................................... 223
Instalowanie pakietów .......................................................................................... 224
Używanie zainstalowanych pakietów ...................................................................... 225
Krótki opis pakietów PEAR .................................................................................... 225
Pozostałe pakiety ................................................................................................. 234
Projekt PECL ............................................................................................................. 235
Fileinfo ................................................................................................................ 235
PDO .................................................................................................................... 236
Xdebug ................................................................................................................ 236
Podsumowanie .......................................................................................................... 236
Rozdział 9. Wydajność kodu ...............................................................................................................237
Po co w ogóle się tym zajmować? ............................................................................... 238
Mało pracy duże efekty ......................................................................................... 238
Dużo pracy małe efekty ......................................................................................... 239
Porównanie prędkości obsługi ciągów znaków
przykład z pomiarem prędkości ...... 240
Wyniki nieintuicyjne .............................................................................................. 245
Pomiar prędkości i profilowanie .................................................................................. 246
Pomiar prędkości pakietem PEAR .......................................................................... 246
top i ab ............................................................................................................... 248
Poprawianie sprzętu .................................................................................................. 250
Poprawianie serwera WWW ........................................................................................ 251
Poprawianie interpretera PHP ..................................................................................... 255
Standardy kodowania ........................................................................................... 255
Buforowanie ........................................................................................................ 266
Nasz własny kod .................................................................................................. 271
Podsumowanie .......................................................................................................... 276
Rozdział 10. Rozszerzenia PHP ...........................................................................................................279
PDFLib ...................................................................................................................... 279
Konfiguracja ........................................................................................................ 280
Zaczynamy ........................................................................................................... 280
Podawanie informacji o dokumencie ...................................................................... 281
Elementy wymagane ............................................................................................. 281
Funkcje pomocnicze ............................................................................................. 282
Czcionki i pozycjonowanie tekstu ........................................................................... 283
Zakończenie ........................................................................................................ 284
Generator Résumé w PHP ..................................................................................... 284
Biblioteka GD ............................................................................................................ 288
Tworzenie podstawy obrazka ................................................................................. 288
Zmiana wielkości obrazu ....................................................................................... 292
Obracanie obrazków ............................................................................................. 296
Dodawanie podpisu do obrazka ............................................................................. 297
Dodawanie logo do obrazka .................................................................................. 301
Testowanie klasy ................................................................................................. 305
Zgłoś jeśli naruszono regulamin