Składowisko bitów

Strona interentowa powinna żyć własnym życiem. Jeśli pracujemy nad serwisem poświęconym samochodom, należy zadbać o stały dopływ nowych notek i artykułów z dziedziny motoryzacji. Z kolei witryna poświęcona np. psom rasy Labrador retriever powinna zawierać zawsze aktualną listę adresów hodowców. Jak jednak zapanować nad stale zmieniającą się zawartością strony? Sposobów może być kilka, jednak najwydajniejszym jest użycie bazy danych.

W komfortowej sytuacji są użytkownicy systemów CMS (Content Management System), takich jak PHP Nuke czy Zope – podstawowe informacje na temat takich aplikacji można znaleźć w ramce na $(LC84779:Gotowe systemy do tworzenia portali)$ tego artykułu. Problem polega na tym, iż stosunkowo często wykorzystanie CMS-ów jest wytaczaniem armaty przeciwko wróblom. Użycie takiego systemu wymaga sporego nakładu pracy na instalację i konfigurację, a na dodatek zazwyczaj okazuje się, iż wybrane przez nas zastosowanie CMS-a jest na tyle nietypowe, że i tak musimy się zagłębić w skomplikowanych skryptach serwerowych. Jeśli więc baza danych jest nam potrzebna do przechowywania prostych notek albo listy gości, warto nauczyć się podstaw pisania skryptów PHP i tworzenia tabel MySQL-a. Wtedy na własnoręczne wykonanie prostego serwisu powinno nam wystarczyć zaledwie kilka wieczorów.

W kolejnych akapitach tego tekstu zapoznamy się z podstawami funkcjonowania stron internetowych działających z użyciem baz danych. Aby zobrazować działanie poszczególnych mechanizmów, utworzymy zestaw prostych skryptów, dzięki którym nasza strona zostanie wzbogacona księgą gości odwiedzających witrynę.

Wnętrzności serwera

Zanim zaczniemy rozważać użycie poszczególnych technologii i technik programistycznych, wyjaśnijmy, jak działa np. system notek z aktualnościami w każdym szanującym się portalu internetowym. Opiera się on mianowicie na mechanizmie współpracy serwera WWW z serwerem baz danych.

Informacje wyświetlane na stronie internetowej (w tym przypadku notki) przechowywane są w tabelach bazy danych. Redaktor serwisu wprowadza tekst za pomocą odpowiedniego formularza (najczęściej dostępnego za pośrednictwem przeglądarki WWW na stronie chronionej hasłem). Zazwyczaj określa też kategorię notki, termin jej publikacji i inne zależne od typu serwisu parametry. Dane z formularza wędrują do bazy danych, gdzie umieszczane są w odpowiednio zaprojektowanych tabelach. Pojedynczy rekord takiej tabeli to jedna notka wraz ze wszystkimi informacjami towarzyszącymi. W sytuacji gdy któryś z czytelników serwisu otworzy w przeglądarce publicznie dostępną stronę z notką, tak naprawdę spowoduje uruchomienie skryptu (czyli programu zaszytego w kodzie strony WWW), który pobierze dane z bazy, sformatuje je odpowiednio i wyświetli w oknie przeglądarki. Warto wspomnieć o dodatkowych operacjach, takich jak np. generowanie i buforowanie na podstawie zawartości bazy statycznych stron WWW w serwisach o dużej oglądalności (operacje bazodanowe stosunkowo mocno obciążają serwer). Widzimy więc, że do działania całego mechanizmu wymagane są trzy podstawowe komponenty:

– serwer baz danych, przechowujący informacje wyświetlane później na stronie WWW;

– mechanizm skryptowy, “wyciągający” z bazy informacje i formatujący je do postaci dokumentu HTML;

– serwer WWW, wysyłający gotową stronę do przeglądarki użytkownika.

W praktyce engine skryptowy jest zazwyczaj nierozerwalnie związany z serwerem WWW (jest jego modułem). Czasem może się zatem zdarzyć, że określona kombinacja serwera WWW i języka skryptowego (np. IIS i Python) nie będzie w ogóle istniała.

Dlaczego MySQL i PHP?

Nie bez przyczyny na początku tego artykułu wspomniano o języku PHP i bazie danych MySQL. Dlaczego zatem używać tego tandemu zamiast np. Microsoft SQL-a i ASP? Powodów można wymienić co najmniej kilka.

Pierwszy i w zasadzie decydujący to fakt, iż większość usługodawców internetowych na pytanie o dostęp do bazy danych zaproponuje nam udostępnienie serwera Apache z modułem do obsługi skryptów PHP oraz bazą MySQL. Ponieważ jednak sytuacja taka ma swoje podłoże (ważne również dla osób, które chcą mieć własny serwer sieciowy), prześledźmy dokładniej powody powodzenia, jakim cieszy się wspomniany zestaw technologii.

Najważniejszym atutem wszystkich trzech komponentów jest zapewne ich darmowość. Apache, najpopularniejszy serwer WWW świata, jest rozpowszechniany na licencji GPL. Licencja MySQL-a pozwala na jego darmowe wykorzystanie, pod warunkiem że nie będziemy sprzedawać efektów współpracy naszych skryptów z bazą danych (dokładniej komercyjny produkt nie może być “nierozerwalnie związany” z MySQL-em). PHP to kolejny produkt opensource’owy, cieszący się na świecie ogromnym powodzeniem. Na dodatek wszystkie wymienione technologie doskonale działają na platformach uniksowych, w tym również Linuksie.

Inne argumenty, które można wymienić, to wysoka jakość wymienionych trzech produktów, gwarantująca odpowiedni poziom bezpieczeństwa serwera przy minimalnym nakładzie pracy administratora. Nie bez znaczenia jest również budząca respekt szybkość zarówno Apache’a, jak i MySQL-a – na archaicznym wręcz sprzęcie można zainstalować bardzo wydajny serwer sieciowy.

Więcej:bezcatnews