1 Základní informace o phpMyAdmin Vítejte na rozvinutém Webu! Za několik posledních let se Web dramaticky změnil. Ve svém dětství byl Web médium, které se převážně využívalo pro sdělování statických informací („Heč, mám na Webu svou domovskou stránku!“). Nyní rozsáhlé části Webu přenášejí takové informace, které jsou dynamicky generovány aplikačními programy. Spoléhají se na ně společnosti, firmy, a dokonce i jednotlivé fyzické osoby, když vytvářejí své intranety a veřejné weby. Protože jsou výhody plynoucí z používání databází zřejmé (lepší přístupnost i strukturování informací), jsou webové aplikace obvykle database-driven, databází „poháněné“. Konečným uživatelem na popředí je velmi dobře známý (a rychle rozšiřovaný) webový prohlížeč, v pozadí je nějaký databázový systém. Rozhraní mezi prohlížečem a databází poskytují různé aplikační programy. Ti, kteří v současné době nepracují na Webu se stránkami těžícími z databází, nevyužívají plně kapacitu tohoto média. Může se také stát, že budou zaostávat za svými konkurenty, kteří už tento přechod učinili. Takže otázka nezní, zda bychom měli implementovat web „poháněný“ databází, ale spíše kdy, a hlavně jak ho implementovat. Proč webové aplikace? Protože přispívají k tomu, aby uživatelé byli s našimi aplikacemi spokojenější, vylepšovali svoje zkušenosti, a abychom je vtáhli do celého procesu tím, že poskytneme následující možnosti:
• • • • •
shromažďovat názory (zpětné vazby) ohledně našeho webu; umožníme jim komunikovat s námi i vzájemně mezi sebou prostřednictvím fór; nabídneme jim zboží z našeho webu elektronického obchodu; zpřístupníme jim snadno upravovatelné informace založené na Webu (správa obsahu); dovolíme navrhování a udržování databází z Webu.
Dnes by zkratka WWW mohla vyjadřovat World-Wide Wave (nikoli původní World Wide Web), tedy obrovitá vlna (nikoli pavučina), která se převalila celým světem, a od základu změnila způsob, jakým vývojáři přemýšlejí o uživatelském rozhraní, prezentaci dat, a ze všeho nejvíc, o způsobu, jak mají data dorazit k uživatelům, a vracet se zpět do „centrálního úložiště dat“.
22
phpMyAdmin – efektivní správa MySQL
PHP a MySQL: přední dvojka u Open-Source V této kapitole se popisuje místo, které zaujímá phpMyAdmin v kontextu PHP/MySQL, vysvětluje se historie phpMyAdmin, a uvádí souhrn jeho schopností. Podíváme-li se na řešení, která aktuálně nabízejí poskytovatelé hostitelů, převládá kombinace PHP a MySQL. Zmíněné duo, dobře podporované svými domovskými stránkami, http://www.php.net respektive http://www.mysql.com, vybavilo vývojáře tak, aby mohli nabídnout řadu hotových webových aplikací a, což je nejdůležitější, umožnilo vývojářům ve firmách dát rychle do provozu solidní webová řešení. MySQL, který do značné míry vyhovuje standardu ANSI-92 SQL, je databázový systém, který je dobře známý svou rychlostí, robustností, a malými režijními náklady na připojení, což je důležité ve webovém kontextu, kde stránky musí být obslouženy tak rychle, jak je to jen možné. PHP, instalovaný jako modul uvnitř webového serveru, je populární skriptovací jazyk, v němž se aplikace píší tak, aby komunikovaly s MySQL v pozadí a s prohlížeči v popředí. Jeho evoluci ilustruje příznačně to, že se změnil i význam samotného akronymu. Z Personal Home Page (osobní domovská stránka) přes Professional Home Page (profesionální domovská stránka) na svou aktuální rekurzívní definici: PHP: Hypertext Processor (PHP: hypertextový procesor). Je k dispozici na milionech webových domén a žene svou vlastní vlnu rychle vyvíjených aplikací.
Co je phpMyAdmin? phpMyAdmin je webová aplikace napsaná v PHP a obsahující klientský kód XHTML, CSS a JavaScriptu. Poskytuje kompletní webové rozhraní pro administraci databází MySQL a je ve svém oboru obecně považován za vůdčí aplikaci. Protože je od svého vzniku open-source, těší se podpoře četných vývojářů a překladatelů po celém světě (v době, kdy šla kniha do tisku, už byl přeložen do 47 jazyků). Hostitelem projektu je v současné době SourceForge. Produktu phpMyAdmin (má oficiální domovskou stránku na http://www.phpmyadmin.net) prokázali důvěru hostitelští poskytovatelé po celém světě tím, že ho nainstalovali na své servery. Kromě toho můžeme instalovat svou vlastní kopii phpMyAdmin dovnitř našeho webového prostoru, pokud má náš poskytovatel nainstalované nejnovější verze PHP a MySQL. Populární CPanel (řídící aplikace webu) je s phpMyAdmin v souladu.
KAPITOLA
1 : Základní informace o phpMyAdmin
23
Historie První interní verzi (0.9.0) zakódoval Tobias Ratschiller a nese datum 9.9.1998. Vydal pak 26. října 1998 verzi 1.0.1. Rané verze byly nabízené na webu Tobiase: http://www.phpwizard.net (tento web už s ním nemá nic společného). Jak Tobias napsal v doprovodných poznámkách: „Tato práce je založena na MySQL-Webadmin Petera Kuppelwiesera. Byl to jeho nápad, vytvořit webové rozhraní do MySQL pomocí PHP3. I když jsem nepoužil nic z jeho zdrojového kódu, existují jisté pojmy, které jsem si od něho vypůjčil. phpMyAdmin byl vytvořen proto, že mi Peter sdělil, že už dále nehodlá vyvíjet svůj (skvělý) nástroj.
24
phpMyAdmin – efektivní správa MySQL
V porovnání se současnou verzí (pět let od původní verze), byla první verze poněkud omezující ve svých schopnostech, nicméně se dala využít pro vytváření databází a tabulek, k editaci jejich struktury, i k zadávání a získávání dat. Všimněte si v následujícím obrázku, že v levém rámci už byl seznam názvů databází (ještě ne názvy tabulek), a že pravý rámec představoval pracovní prostor pro správu databáze nebo tabulky. Takhle vypadalo rozhraní pro databáze v anglické verzi 1.3.0:
Když jste chtěli pracovat s nějakou tabulkou, ocitli jste se na obrazovce tohoto druhu:
Já jsem začal používat phpMyAdmin ve verzi 1.2.0 (vydané 29. listopadu 1998) a okamžitě mě nadchl nápad, aby šlo udržovat vzdálenou databázi pomocí nějaké webové aplikace. Ovšem, stu-
KAPITOLA
1 : Základní informace o phpMyAdmin
25
denti v Collège de Sherbrooke, kde jsem pracoval v Quèbecu v Kanadě, byli lidé mluvící francouzsky, takže jsem kontaktoval Tobiase a nabídl mu takovou transformaci jeho zdrojového kódu, která vytáhne všechny zprávy mimo, do nějakého souboru zpráv. Nabídku přijal a já jsem vytvořil soubory anglických a francouzských zpráv. Pak, 27. prosince 1998, vydal Tobias verzi 1.3.1, první vícejazyčnou verzi (mezitím se postaral o vytvoření souboru německých zpráv). V roce 1999 a v první polovině roku 2000, zdokonalil Tobias navigační systém, přidal schopnosti a zařadil soubory dalších jazyků. Na webu jeho projektu se provozovalo diskusní fórum, takže průběžně přicházely nové nápady a probíraly se různé záplaty. Potom, 8. června 2000, vydal verzi 2.1.0, což byla poslední verze vydaná Tobiasem, protože už nadále neměl čas na to, aby se projektu věnoval. Uživatelů už bylo ovšem hodně, a stále více jich projevovalo o produkt zájem. Na internetu se stále záplatovalo a nebylo žádné centrum, které by věci koordinovalo. Byla publikovaná (a opravená) výstraha týkající se zabezpečení, ale žádná nová verze vydaná nebyla. 31. března 2001 zaregistroval Olivier Müller projekt phpMyAdmin na SourceForge.net a vydal zde verzi 2.2.0pre1. V té době se tomu říkalo neoficiální verze. Obnovený start projektu přilákal některé vývojáře, kteří nyní měli k dispozici infrastrukturu SourceForge (server CVS, fóra, „slídiče chyb“ – bug trackers, emailové konference), takže jim pomohla urychlit vývoj. Já osobně jsem se k projektu „opětovně připojil“ v květnu 2001 a začal jsem opravovat a zdokonalovat kód, podobně jako to dělali mí spolupracovníci vývojáři. „Oficiálními“ jsme se stali 28. května 2001, kdy Tobias přijal naši novou verzi jako oficiální verzi. Pamatuji se na tyto měsíce jako na dobu intenzivního vývojářského úsilí, kdy se něco zdokonalovalo a opravovalo každý den, včetně nových sekcí dokumentace. Naše snažení kulminovalo dne 31. srpna 2001 vydáním verze 2.2.0. Tady máte výňatek ze souboru, jímž se oznamovalo vydání verze 2.2.0. „Po 5 měsících, 5 vydáních beta a 4 kandidátních vydáních vyhlašují s potěšením vývojáři phpMyAdmin, že je k dispozici verze phpMyAdmin 2.2.0. [...] 31. března 2001 opětovně nastartoval Olivier Müller (Švýcarsko), s podporou vývojářů Marc Delisle (Quèbec), Loĩc Chapeaux (Francie) a týmu dalších osmi, projekt phpMyAdmin na SourceForge.net s autorizací od původního udržovatele balíku. Nyní, po 5 měsících záplat, oprav chyb, dodávání nových schopností a testování, je konečně verze 2.2.0 hotová.“ V této verzi byly opraveny věci týkající se zabezpečení, bylo přidáno sedm nových jazyků (s dynamickou detekcí jazyka) a kód byl přepracován tak, aby vyhovoval CSS2 a XHTML 1.0 a dodržoval doporučení PEAR pro psaní kódu. V této verzi se také objevila schopnost práce s oblíbenými dotazy (bookmarks). Během následujícího roku vývojářské práce pokračovaly a bylo vydáno 7 dílčích verzí. Poslední verze ze série 2.2.x je 2.2.7-p11. Je to také poslední verze, která byla plně otestovaná pod PHP 3.
26
phpMyAdmin – efektivní správa MySQL
Důležité datum je 3. duben 2002; zaregistrovali jsme phpMyAdmin.net jako oficiální název domény pro projekt. 11. srpna 2002 pak byla vydána verze 2.3.0. Bylo přidáno tak mnoho nových schopností, že stránky prostě příliš narostly ve svislém směru, takže se tato verze stala „velkou rozčleňující verzí“. Zobrazovala podstránky pro každou skupinu schopností tabulky nebo databáze. Tým zahájil naplánovaný rozvrh vydávání nových podverzí (2.3.1, 2.3.2) každé dva měsíce. O sedm měsíců později byla do verze 2.4.0 zařazena správa uživatelů/serveru. 11. května 2003 pak číslo verze skočilo rovnou na 2.5.0, aby se tím oslavil transformační systém typu MIME jednotlivých buněk. Aktuální verze, 2.6.0, podporuje nové rozšíření mysqli, které je k dispozici v PHP 5, s jehož pomocí se dociluje vyšší výkon a lepší zabezpečení. V této verzi byl také upraven návrh rozhraní, včetně nových ikon a správy různých vzhledů. Všechny zde uvedené schopnosti jsou v knize vysvětlené. phpMyAdmin získal také některá ocenění, na což se můžete podívat v sekci Awards domovské stránky projektu. Nejprve dostal od administrátorů SourceForge cenu „projekt měsíce“ (Project Of The Month) za prosinec 2002. V dokumentu ve stylu interview, který jsme připravili pro stránku POTM SourceForge, jsem napsal, že na mě udělala dojem četnost stahování produktu, což bylo v té době 3 za minutu (od té doby jsme se dostali ve špičce na 10 za minutu). phpMyAdmin dostal v roce 2003 75 % hlasů od čtenářů německého časopisu PHP Magazin a jeho mezinárodní verze v kategorii „Nejlepší aplikace/nástroj PHP“. Cena byla oficiálně prezentována v listopadu 2003 na 2003 International PHP Conference.
Souhrn schopností phpMyAdmin Cílem phpMyAdmin je nabídnout kompletní správu serverů a dat MySQL založenou na webech, a držet krok s evolučními standardy MySQL a Webu. Přestože produkt není perfektní, aktuálně zahrnuje nejběžněji požadované schopnosti a spoustu věcí navíc. Vývojový tým trvale produkt vyvíjí na základě oznámených chyb a požadavků na schopnosti a pokračuje ve vydávání podverzí v intervalu zhruba dvou měsíců. phpMyAdmin nabízí schopnosti, které pokrývají základní operace MySQL s databázemi a s tabulkami. Má také interní relační systém, který udržuje metadata za účelem podpory vyspělejších schopností. Konečně, systémoví administrátoři mohou z phpMyAdmin spravovat uživatele a oprávnění. Je důležité připomenout, že volby dostupných operací phpMyAdmin závisejí na oprávněních, která byla uživateli udělena ke specifickému serveru MySQL. Základní výbavu tvoří následující schopnosti:
• Vytvoření a odstranění databáze • Vytvoření tabulky, přejmenování, kopírování a odstranění
KAPITOLA
• • • • • • • • • • •
1 : Základní informace o phpMyAdmin
27
Údržba struktury tabulky, včetně indexů Speciální operace nad tabulkou (oprava, optimalizace, změna typu) Vkládání dat, modifikace, odstraňování Zobrazování dat vodorovně /svisle a náhled před tiskem Navigace po datech a třídění Nahrávání binárních dat Vyhledávání dat (v tabulce nebo v databázi) Dotaz podle příkladu (nad několika tabulkami) Dávkové načítání dat Export struktury a dat v rozličných formátech, s komprimací. Instalace pro více uživatelů a více serverů.
Do nadstavby patří:
• • • • • • • •
Komentáře na úrovni sloupců Cizí klíče (s InnoDB nebo bez) Prohlížení připojené tabulky Oblíbené dotazy Slovník dat Relační schéma a slovník PDF Historie dotazů SQL Připojení k MySQL buď pomocí tradičního rozšíření mysql, nebo nového rozšíření mysqli (v PHP 5)
• Podpora znakových sad pro databáze, tabulky a sloupce (s MySQL 4.1) • Transformace obsahu sloupce založené na typu MIME • Správa vzhledů, jimiž se dá přizpůsobit vzhled rozhraní Do schopností pro administraci serveru patří:
• • • •
Správa uživatelů a oprávnění Kontrola databázových oprávnění Stav serveru Export více databází najednou
Shrnutí V kapitole jsme hovořili o tom,
• jak se vyvíjel Web jakožto prostředek pro snadnější doručování aplikací; • proč bychom měli takové aplikace vyvíjet s PHP/MySQL;
28
phpMyAdmin – efektivní správa MySQL
• jak se phpMyAdmin stal vůdčí aplikací pro rozhraní k MySQL z Webu; • jaká byla historie vývoje phpMyAdmin; • jaké schopnosti obsahuje (ve formě stručného výčtu).