Prof. dr hab. inż. Sławomir W
iak
Systemy Baz
Systemy Baz
Danych
Danych
(cz. 1.2)
(cz. 1.2)
PHP
PHP
Prof. dr hab.
Prof. dr hab.
inż
inż
. Sławomir Wiak
. Sławomir Wiak
Prof. dr hab. inż. Sławomir W
iak
PHP, Apache oraz MySQL
Prof. dr hab. inż. Sławomir W
iak
PHP jest to język skryptowy wykonywany, podobnie
jak
CGI
czy
ASP
po stronie serwera (server-side), a
nie  po  stronie  użytkownika  (client-side),  więc  nie 
jest zależny od rodzaju przeglądarki, czy od systemu 
operacyjnego  (jak  wiemy  różne  elementy  mogą  być 
odmiennie wyświetlane na różnych przeglądarkach), 
tylko od oprogramowania serwera. 
Wszystko to połączone z stosunkowo dużą łatwością
obsługi i ogromnymi możliwościami sprawia, że
PHP
staje się bardzo poważnym konkurentem
innych
server-side'owych języków, chociażby CGI.
Twórcą PHP jest Rasmus Lerdorf, który w 1994 roku
użył  tego  języka  na  swojej  stronie  domowej. 
Zadaniem tej pierwszej, niepublikowanej wersji PHP 
było  zbieranie  informacji  o  osobach  odwiedzających 
witrynę,  a  spośród  ciekawych  funkcji  należy 
wymienić  możliwość  umieszczania  pytań  SQL  w 
stronach WWW.
Prof. dr hab. inż. Sławomir W
iak
Już w następnym roku
PHP (Personal Home Page
Tools)
zyskało sobie dość dużą popularność i
zostało udostępnione użytkownikom Sieci. Nie
miało ono jeszcze wtedy zbyt dużych możliwości.
Obsługiwało
proste
instrukcje,
pozwalało
realizować popularne usługi (licznik, księga gości,
itp...)
wykorzystywane
na
stronach
WWW.
Wkrótce pojawiły się jednak liczne sugestie
dotyczące rozszerzenia możliwości parsera PHP.
Wyraźnie
brakowało
pętli,
instrukcji
warunkowych, czy bogatszych struktur danych.
W 1995 roku narodziło się
PHP/FI (PHP2),
uzupełnione o pakiet interpretujący dane z
formularzy HTML (
FI = Form Interpreter
) oraz
możliwość obsługi baz danych
mSQL
. Kiedy ludzie
zaczęli dodawać swój kod, nastąpił niewiarygodny
rozwój nowej wersji PHP. Technologii tej używano
na coraz większej liczbie witryn WWW.
Prof. dr hab. inż. Sławomir W
iak
Kolejna zmiana nastąpiła dwa lata później. PHP
przestało  być  jedynie  osobistym  projektem 
Rasmusa i garstki zapaleńców, stając się dziełem 
zespołowym.  Zeev  Suraski  i  Andi  Gutmans, 
pisząc  część  kodu  zupełnie  od  nowa,  stworzyli 
nowy parser, będący podstawą PHP3.
Najnowsza wersja (PHP4) korzysta z potężnej
platformy skryptowej Zend (
, co zwiększa jej wydajność oraz może
działać  jako  moduł  serwera  innego  niż  Apache. 
Obecnie  PHP4  dostarczane  jest  z  wieloma 
komercyjnymi  produktami,  a  z  technologii  tej 
korzysta  już  ponad  5  milionów  strona  na  całym 
świecie.Kod  źródłowy  PHP  jest  powszechnie 
dostępny  na  zasadzie  Open  Source  (
)
Prof. dr hab. inż. Sławomir W
iak
PHP a serwer WWW
PHP może być zainstalowany
w dwojaki
sposób
.
Pierwszy
, najbardziej popularny, to
instalacja jako moduł serwera, np. Apache'a.
Wówczas skrypt PHP jest wykonywany na
prawach
użytkownika,
który
jest
właścicielem Apache'a - zwykle nobody.
Drugi,
rzadziej
stosowany
sposób
to
instalacja PHP jako programu CGI. Wówczas
skrypty PHP umieszczane są w katalogu ze
skryptami CGI (najczęściej jest to katalog
cgi-bin). Należy również pamiętać, taki
skrypt jest pełnoprawnym programem
CGI
(Common Gateway Interface)
i musi mieć
odpowiednie uprawnienia (755, czyli -rwxr-
xr-x) oraz w pierwszej linii pliku ścieżkę do
interpretera języka.
Prof. dr hab. inż. Sławomir W
iak
Rozszerzenia plików PHP
Pliki stron WWW zawierających skrypty PHP mogą
mieć  różne  rozszerzenia  w  zależności  od 
konfiguracji  serwera.  Najczęściej  stosowane  to: 
*.php, *.php3, *.phtml
. Jeżeli chcesz, aby pliki
PHP  miały  także  inne  rozszerzenia,  musisz  w 
pliku  httpd.conf  (lub  srm.conf)  wpisać  w  sekcji 
AddType 
następującą
linię:
AddType
application/x-httpd-php .<nowe rozszerzenie>
a
następnie,
aby
plik
index
z
nowym
rozszerzeniem  był  traktowany  jako  domyślny 
plik  katalogu
, w sekcji
DirectoryIndex
dopisać:
DirectoryIndex index
.<nowe rozszerzenie>
Prof. dr hab. inż. Sławomir W
iak
Umieszczanie skryptów w HTML-u
Skrypty PHP (obecnie Hypertext Preprocessor)
wykonywane  są  po  stronie  serwera,  ale 
umieszczane bezpośrednio w kodzie strony. 
Serwer interpretuje kod PHP i przekazuje
przeglądarce  stronę  WWW  bez  wstawek  PHP. 
Kod PHP umieszczany jest na stronie za pomocą 
następujących znaczników: 
<?php i ?> 
<? i ?> 
<script language=php> i </script> 
<% i %>
Prof. dr hab. inż. Sławomir W
iak
Drugi typ znaczników, nazywany
Short Tags
(krótkie  znaczniki),  dostępny  jest,  jeżli  w  pliku 
konfiguracyjnym  PHP  (
c:\apache\php\php.ini w
win32
) włączona jest opcja
short_open_tag
:
short_open_tag = On
lub po wywołaniu funkcji short_tags().
Czwarty typ znaczników pochodzi
z języka ASP
i
nie jest dostępny w standardowej konfiguracji
PHP
.
Aby
go
uaktywnić
należy
włączyć
następującą opcję:
asp_tags = On
Prof. dr hab. inż. Sławomir W
iak
Przykładowy skrypt PHP
W celu przedstawienia podstawowych cech PHP
zostanie zaprezentowany i omówiony przykładowy
skrypt odpowiedzialny za wyświetlenie na stronie
aktualnej daty.
<html>
<head>
<title>Skrypt PHP</title>
</head>
<body>
/* skrypt PHP
drukowanie aktualnej daty */
$aktualna_data = date("d-m-Y"); // pobieramy datę
do zmiennej
echo("Dziś jest $aktualna_data"); // drukujemy linię
#koniec drukowania aktualnej daty
</body>
</html>
Prof. dr hab. inż. Sławomir W
iak
 Wynikiem działania tego skryptu będzie: 
<html>
<head>
<title>Skrypt PHP</title>
</head>
<body>
Dziś jest: 27-07-2001
</body>
</html> 
Zwrócony tekst zastąpi znaczniki skryptu (<? i ?>)
wraz z umieszczonym między nimi kodem i 
komentarzami.
Prof. dr hab. inż. Sławomir W
iak
PHP – Personal Home Page
w odróżnieniu od
HTMLa jest kompilowany po stronie serwera
.
Odciąża to w znacznym stopniu
komputer
klienta  i  znacznie  zwiększa  możliwości 
zabezpieczenia 
zarówno
wymienianych
informacji  jak  i  samego  kodu  strony: 
użytkownik  widzi  jedynie  zwracane  przez 
serwer informacje, a nie tak jak w HTML cały 
kod. 
Dodatkową korzyścią jest fakt
, iż strona jest
niezależna  od  przeglądarki  internetowe  – 
tutaj za wszystko jest odpowiedzialny serwer. 
Ponadto  PHP  umożliwia  dostęp  do  baz 
danych, a to daje już bardzo duże możliwości. 
Prof. dr hab. inż. Sławomir W
iak
Pozwala nam stworzyć na przykład:
sklep
internetowy, serwis ogłoszeniowy, bazę danych
firmy
gdzie oddziały z innych miast będą na
bieżąco zaznaczały swoje przychody, rozchody,
zamówienia itp., forum dyskusyjne na wybrany
przez nas temat, internetowy terminarz firmy
pozwalający zawsze i o każdej porze sprawdzić
co w najbliższym czasie jest do zrobienia w
pracy, a kierownictwu znacznie ułatwi podział
zadań – nie trzeba informować każdego z
osobna... Można jeszcze długo wymieniać.
Sam
kod PHP łączymy z plikami HTML poprzez
zamknięcie go w znacznikach <? oraz ?>
<table><tr><td>
<?
phpinfo();
?>
</td></tr></table>
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Cechy i opis MySQL
MySQL może zostać zainstalowany i pracować
pod
praktycznie
każdym
systemem
operacyjnym
(MS Windows, systemy z
rodziny Unix, Mac OS, OS/2).
Wersja dla
systemów  MS  Windows  jest  wersją  30 
dniową. 
W
pozostałych
przypadkach
program  można  używać  bez  konieczności 
wnoszenia 
opłat.
Producent
MySQL-a
oferuje  także  szeroki  wachlarz  usług 
związanych  z  programem  oraz  pełne 
wsparcie techniczne. 
Niżej
wymienione
możliwości
MySQL-a
sprawiają,  że  stanowi  on  silną  konkurencję 
dla  podobnych,  aczkolwiek  komercyjnych 
produktów:
Prof. dr hab. inż. Sławomir W
iak
baza danych zdolna pomieścić nawet 
kilkadziesiąt milionów rekordów – 
wielkość ta zależy jedynie od fizycznych 
możliwości komputera;
interfejsy API dla najważniejszych języków 
programowania (m.in. C, PHP, Perl);
wykorzystanie mocy komputerów 
wieloprocesorowych;
nieograniczona liczba użytkowników 
mogących jednocześnie korzystać z bazy 
danych;
duża szybkość działania wynikająca 
jednak w pewnym stopniu z braku 
niektórych funkcji – np. obsługi transakcji
Prof. dr hab. inż. Sławomir W
iak
Serwer MySQL jest produktem bardzo
dobrze  zaprojektowanym,  dzięki  czemu 
możliwe  stało  się  uzyskanie  bardzo  dużej 
szybkości  przetwarzania  danych,  przy 
zachowaniu  bardzo  dobrej  stabilności  i 
funkcjonalności. 
Unikalnym rozwiązaniem jest oddzielenie
jądra
serwera
od
mechanizmów
zarządzania  bazami  i  tabelami  (fizycznie 
są  to  katalogi  i  pliki).  Między  innymi 
dlatego 
uzyskano
niezwykle
dużą
wydajność
serwera,
znacznie
przewyższającą
większość
innych
produktów, w tym komercyjnych.
Prof. dr hab. inż. Sławomir W
iak
W
chwili
obecnej
MySQL
jest
najpopularniejszym
serwerem
bazodanowym dostępnym nieodpłatnie wraz 
z  kodem  źródłowym.  Zainstalowany  jest  na 
ponad 
2 milionach serwerów
obsługując
serwisy  internetowe,  hurtownie  danych, 
aplikacje  biznesowe,  systemy  logowania  i 
zbierania danych (np. statystyki). 
Serwer MySQL wykorzystywany jest m.in.
przez
Yahoo! Finance, MP3.com, Motorollę,
NASA, Silicon Graphics, Texas Instruments.
O popularności serwera MySQL świadczy
także liczba odsłon serwisu www.mysql.com, 
która wynosi ponad 
10.000.000
miesięcznie
Prof. dr hab. inż. Sławomir W
iak
MySQL
doczekał się kilku wyspecjalizowanych
wersji,  zoptymalizowanych  dla  konkretnych 
zastosowań i wymagań klientów:
MySQL 4.0.
Jest to najnowsza i najbardziej
rozbudowana wersja MySQL, wspierająca 
m.in. cache’owanie zapytań.
MySQL.
Jest to standardowa i
najpopularniejsza wersja, zoptymalizowana 
pod względem szybkości działania, 
pozbawiona przede wszystkim obsługi 
transakcji.
MySQL-Max.
Jest to specjalna wersja MySQL
wyposażona w dwa różne mechanizmy obsługi 
tabel (InnoDB i BDB); wersja ta w pełni 
wspiera transakcje.
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak
Prof. dr hab. inż. Sławomir W
iak