Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování
Školní intranet na bázi Open Source CMS Bakalářská práce
Autor:
Peter Kocnár Informační technologie
Vedoucí práce:
Praha
Ing.Vladimír Beneš
Červen 2010
Prohlášení: Prohlašuji, ţe jsem tuto bakalářskou práci zpracoval samostatně a s pouţitím uvedené literatury a informačních zdrojů.
V Praze 28. června 2010
Peter Kocnár
Anotace Cílem této práce je popsat pouţití webové aplikace systému pro správu obsahu (CMS) jako platformy pro budování školního intranetu. První část práce se věnuje objasnění klíčových pojmů „intranet“ a „CMS“. Část druhá se zabývá návrhem, do nějţ je zahrnuto také zmapování dostupných technologií a výběr některé z nich pro realizaci navrţeného systému. Poslední část popisuje základní kroky při implementaci takového řešení.
Annotation The aim of this paper is to describe the use of web application content management system (CMS) as a platform for building the school intranet. The first part is devoted to clarifying the key concepts of "intranet" and "CMS". The second part deals with the design of the school's intranet, to which is also included the mapping of available technologies and the selection of one of them for implementation of designed system. The last part describes the basic steps in implementing such a solution.
Obsah ÚVOD.................................................................................................................................... 6 1
ZÁKLADNÍ POJMY .................................................................................................... 7 1.1 Intranet – vymezení pojmu .......................................................................................... 7 1.2 Intranet – jako informační systém ............................................................................... 7 1.3 Intranet – technologické pozadí................................................................................... 8 1.4 CMS - Vymezení pojmu .............................................................................................. 9 1.5 CMS – výhody a nevýhody ....................................................................................... 10 1.6 CMS - přehled moţností řešení ................................................................................. 11
2
NÁVRH ŘEŠENÍ ŠKOLNÍHO INTRANETU........................................................... 13 2.1 Vize školního intranetu.............................................................................................. 13 2.2 Struktura intranetu ..................................................................................................... 14 2.3 Katalog poţadavků .................................................................................................... 15 2.4 Model případů uţití ................................................................................................... 16 2.5 Výběr vhodného řešení .............................................................................................. 17 2.6 Porovnání Drupal a Joomla! ...................................................................................... 19 2.6.1 Drupal ................................................................................................................. 19 2.6.2 Joomla! ............................................................................................................... 24 2.6.3 Vyhodnocení porovnání ..................................................................................... 29
3
POSTUP IMPLEMENTACE ...................................................................................... 32 3.1 Konfigurace a zprovoznění webového prostředí ....................................................... 32 3.1.1 Instalace webového prostředí pod OS Linux ...................................................... 33 3.1.2 Instalace webového prostředí pod OS Windows ................................................ 33 3.1.3 Konfigurace Apache, PHP a MySQL ................................................................. 34 3.1.4 Otestování instalace ............................................................................................ 36 3.2 Konfigurace CMS Drupal pro školní intranet ........................................................... 39 3.2.1 Vytváření sekcí ................................................................................................... 39 3.2.2 Vytváření menu .................................................................................................. 39 3.2.3 Správa uţivatelů ................................................................................................. 40 3.2.4 Autentizace uţivatelů ......................................................................................... 40 3.2.5 Nahrávání dokumentů na server ......................................................................... 41 3.2.6 Ankety ................................................................................................................ 41 3.2.7 Vytváření typů obsahu ........................................................................................ 41
3.2.8 Pohledy ............................................................................................................... 41 3.2.9 Úprava vzhledu ................................................................................................... 41 ZÁVĚR A DOPORUČENÍ ................................................................................................. 43 SEZNAM POUŢITÉ LITERATURY ................................................................................. 45 SEZNAM OBRÁZKŮ ........................................................................................................ 47
ÚVOD Pro kaţdou organizaci libovolného rozsahu a zaměření je nezbytně nutná efektivní výměna a sdílení informací. Význam těchto procesů nebývale roste s rozvojem informačních technologií. Organizace, která je nemá implementované dobře a v souladu s aktuálními technologickými moţnostmi, ztrácí schopnost co nejefektivnějšího fungování a tudíţ udrţení kroku s konkurencí, resp. získání konkurenční výhody. S nástupem a rozvojem elektronické výměny informací a dokumentů se neustále zvyšují poţadavky na jejich efektivní organizaci. Důvody jsou narůstající objem a také nové způsoby jejich organizace, které je umoţňují vyuţít novými způsoby. Příkladem je pouţití databázových systémů, bez kterých se dnes neobejde jiţ ţádná organizace. Důsledkem tohoto vývoje je vznik informačních systémů, které mají na více či méně integrované úrovni řešit aktuální informační potřeby organizace. Pro potřeby vnitřní komunikace je v poslední době, zejména jako náhrada emailové komunikace a systémového sdílení souborů, pouţívána technologie privátní počítačové sítě, zaloţená na síťovém protokolu TCP/IP a internetových sluţbách, obecně známá pod názvem intranet. V prostředí školy můţe intranet plnit různé funkce, od základní publikační aţ po jednotný portálový integrovaný systém, který slouţí pro přístup ke všem pouţívaným funkcionalitám informačního systému celé organizace. Jelikoţ jednou ze základních sluţeb internetu je WWW, jejíţ funkcí je zejména publikování obsahu, vyvinuli se softwarové systémy, které umoţňují uţivatelům publikaci obsahu bez znalosti technologií jako je např. HTML nebo CSS. Pro tyto systémy pouţíváme označení CMS. Jejich uplatnění najdeme v současnosti jak v různých internetových sídlech, tak v intranetech organizací. Tato práce se zabývá výběrem a implementací takového řešení intranetu na bázi CMS, které plní základní publikační funkce pro jednotlivé organizační jednotky školy, přičemţ předpokládá jeho další rozvoj směrem k integrovanému informačnímu systému.
6
1 ZÁKLADNÍ POJMY 1.1 Intranet – vymezení pojmu Pojem intranet je moţné obecně chápat v třech různých významech podle míry zobecnění: 1. Jako vnitřní síť, která zahrnuje hardwarové a softwarové síťové prvky (servery, switche, firewally, atd.), všechny síťové aplikace pouţívající různé síťové protokoly a síťově sdílené soubory a data. 2. Jako privátní síť vyuţívající internetové sluţby, tj. sluţby zaloţené na protokolu TCP/IP, zejména elektronickou poštu a WWW. 3. Jako webovou aplikaci slouţící pro interní potřeby organizace. Tato práce se bude zabývat posledním, nejuţším vymezením tohoto pojmu.
1.2 Intranet – jako informační systém Počátky intranetu spadají do období, kdy se vnitřní sítě větších organizací začali otevírat globální světové síti – Internetu. Došlo tak ke střetu dvou technologických přístupů: a.) proprietárních informačních systémů postavených na různých technologiích a protokolech, b.) světu Internetu postaveného na jednotných standardech. Tato situace vyvolala otázky, zda náklady na překonávání komunikační bariéry jsou skutečně nutné a jestli pro část interního informačního systému nepřijmout internetové standardy. Důleţitým důvodem přijetí intranetu jako IS bylo také jednotné a na platformě nezávislé prostředí pro spouštění aplikací postavených na bázi webu – browser, neboli internetový prohlíţeč. To umoţňuje čím dále tím více pouţívat browser jako jednu z hlavních nebo dokonce jedinou pracovní aplikaci, coţ má pozitivní důsledky: zefektivňuje a zjednodušuje práci uţivatelů, protoţe se uţivatel při práci nemusí přepínat mezi různými aplikacemi s různými způsoby ovládání, šetří náklady na školení zaměstnanců, protoţe velká část funkcionality je zakotvena přímo v browseru a webové prostředí pouţívá stejné ovládací prvky, zjednodušuje distribuci a upgrade aplikací, protoţe se děje jenom na straně serveru a klientská část se ve většině případů nemusí měnit, zefektivňuje a šetří práci pracovníků technické podpory, protoţe uţivatelé i podpora pouţívají jediné aplikační rozhraní a lépe mu rozumějí. 7
Význam intranetu jako informačního systému závisí od jeho rozsahu a míry integrace do informačních procesů organizace. Příklady typů obsahu na intranetu: Obsah, vytvořený editory intranetu elektronické nástěnky, elektronické dokumenty (například zápisy z porad, tiskové formuláře a dokumenty, pracovní příručky, postupy a pravidla). Aplikace zaměřené na vnitřní komunikaci helpdesk, různé ţádosti (například o dovolenou, o pracovní cestu), diskusní fóra, seznamy kontaktů (tel. seznam), kalendář akcí. Aplikace pro podporu hlavní činnosti organizace reporty a statistiky pro různé úrovně managementu, backofficové aplikace pro zprávu báze dat, které pouţívají jiné, např. produkční aplikace (například sklad, katalog, různé číselníky), monitorovací nástroje. Důleţitou charakteristikou organizace obsahu intranetu je hierarchičnost a segmentace. S ní souvisí rovněţ efektivita a zejména bezpečnost intranetu. Kaţdý uţivatel musí být při přihlášení autorizován a mít práva jenom na aplikace a informace, které přísluší jeho pracovní pozici.
1.3 Intranet – technologické pozadí Intranet, jakoţto webová aplikace, pouţívá stejné technologie jako webové aplikace v prostředí internetu. Webová aplikace je typu klient-server, v které je standardně v pozici klienta internetový prohlíţeč, tj. aplikace, která umí zpracovat a zobrazit webový obsah. V pozici serveru je webserver, který umí generovat webový obsah na poţadavek z internetového prohlíţeče.
8
Komunikace mezi klientem a serverem je realizována pomocí rodiny protokolů TCP/IP a o přenášení webového obsahu se stará protokol HTTP. Webový obsah pro zobrazení v internetovém prohlíţeči je vytvářen hlavně pomocí značkovacího jazyka HTML (XHTML)1, formátovacího jazyka CSS2 a scriptovacího jazyka JavaScript3. Kromě těchto technologií existuje mnoţství dalších, které rozšiřují moţnosti publikovaného webového obsahu o lepší interaktivitu, multimediální obsah a nové zobrazovací prvky, např. Adobe Flash, Flex, AJAX, MS Silverlight. Nejpouţívanější webové prohlíţeče jsou MS Internet Explorer, Mozzila Firefox, Opera a Safari. Nejpouţívanější webservery jsou Apache – vyvíjený opensourcovou nadací Apache Software Foundation a Internet Information Server (IIS) od firmy Microsoft. Pro současné webové stránky a aplikace nestačí statický obsah umístěný na webserveru, ale pouţívá se dynamicky generovaný obsah podporovaný pouţitím databázových systémů. Nejrozšířenějšími technologiemi pro generování dynamického obsahu jsou: PHP4, Java5, ASP, ASP.NET6, Python7, Ruby On Rails8, Perl9.
1.4 CMS - Vymezení pojmu Publikování obsahu na webu z pohledu uţivatele je moţné několika způsoby: 1. vkládáním obsahu webovým programátorem přímo do HTML kódu zastaralé, neefektivní a v současnosti jiţ málo pouţívané, 2. pomocí administračního nebo editačního rozhraní k obsahu konkrétních stránek pouţívané v případě menších systémů, pouze u proprietárních aplikací, 3. pomocí komplexního systému pro správu obsahu – CMS.
1
XHTML – zkratka anglického „Extensible Hypertext Markup Language“, česky „rozšiřitelný hypertextový značkovací jazyk“, je značkovací jazyk pro tvorbu hypertextových dokumentů v prostředí WWW vyvinutý W3C původně jako náhrada HTML 2 CSS – zkratka anglického „Cascading Style Sheets“, česky „kaskádové styly“, je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML 3 JavaScript – skriptovací jazyk, pouţívaný zejména pro vkládání funkcionality do HTML dokumentů 4 PHP – zkratka „PHP: Hypertext Preprocessor“, skriptovací programovací jazyk pro tvorbu webových stránek šířený pod Open Source licencí „PHP License“ 5 Java – objektově orientovaný programovací jazyk od firmy Sun Microsystems 6 ASP – skriptovací platforma pro tvorbu webových stránek od firmy Microsoft, ASP.NET – nástupce ASP, ale úplně odlišná technologie, jenţ je součástí .NET Frameworku a podporuje všechny jeho jazyky 7 Python – dynamický interpretovaný jazyk šířený pod Open Source licencí „Python License“ 8 Ruby on Rails – Open Source framework pro vývoj webových aplikací zaloţený na jazyku Ruby 9 Perl – interpretovaný programovací jazyk zejména pro tvorbu CGI skriptů šířený pod Open Source licencí
9
Zkratka CMS je odvozená z termínu „Content Management System“, který v českém překladu znamená „Systém pro správu obsahu“. V širším významu se tento pojem pouţívá pro jakýkoliv systém manuálních nebo automatizovaných postupů pro řízení toku informací a dokumentů v prostředí organizace. Toto širší vymezení pak obsahuje několik dalších kategorií, mezi které patří například Enterprise CMS, Document management system (DMS) nebo Web CMS. V současnosti se však pod pojmem CMS většinou označují webové aplikace pro správu webového obsahu. Pro tento typ software se pouţívají taky termín redakční nebo publikační systém. V této práci se zabývám pouze uţším vymezením CMS, tj. jako webové aplikace. CMS typicky obsahuje: Šablonovací systém, který umoţňuje snadné formátování a spravování vzhledu webových dokumentů z jednoho místa. Modul pro tvorbu, editaci a publikaci článků pomocí editoru textu, který je ve většině případů JavaScriptovým WYSIWYG1 editorem napodobujícím základní funkcionalitu běţných textových editorů. Řízení přístupu k dokumentům, včetně správy uţivatelů a přístupových práv. Workflow management – správu ţivotního cyklu vytvářeného a publikovaného obsahu (např. editor musí potvrdit text vytvořený redaktorem a šéfredaktor jej potvrdí pro zveřejnění). Administraci diskusí a komentářů. Správu souborů, obrázků a galerií. Statistiky přístupů.
1.5 CMS – výhody a nevýhody Výhody pouţití CMS jsou zřejmé: Umoţnit správu obsahu webu lidem, kteří nejsou IT specialisté, čím se šetří náklady na IT.
1
WYSIWYG – zkratka „What you see is what you get“, česky „co vidíš, to dostaneš“, označuje způsob editace dokumentů v počítači, při kterém je verze zobrazená na obrazovce vzhledově totoţná s výslednou verzí dokumentu
10
Strukturovanost tvorby a správy obsahu jednotlivých částí webu podle organizační struktury (např. kaţdý organizační útvar spravuje svojí část podle svých potřeb), co napomáhá aktuálnosti obsahu webu. Jednotný vzhled a formátování stránek. Kontrola nad publikačním workflow. Administrační i uţivatelská hierarchičnost a segmentovanost. Mnoho funkčních modulů. Nevýhody CMS: Závislost na dodavateli zvoleného řešení, tj. opravy chyb, optimalizace výkonu, upgrade, přidávání funkcionality. Další nevýhody závisí jiţ na konkrétním řešení, tyto nevýhody budou zmíněny v následující kapitole.
1.6 CMS - přehled moţností řešení Pro pouţití CMS systému existují různé důvody, jsou na ně kladeny různé poţadavky, a proto existuje také mnoţství řešení. Podle způsobu implementace můţe být CMS 1. Vytvořen přímo na míru poţadavkům organizace pro případ, ţe jsou poţadovány nestandardní funkcionality kdyţ se má ve větší míře integrovat do jiţ existujících informačních procesů výhody: přesně vyhovuje potřebám organizace v okamţiku zadání nevýhody: o
časově a finančně velice nákladné
o vzhledem k delšímu vývoji v okamţiku nasazení nemusí zodpovídat aktuálním potřebám 2. Jiţ hotové řešení a. komerční řešení řešení na platformách Java, .NET, ASP.NET, PHP výhody: profesionální řešení se spoustou funkcí nevýhody: o placené řešení o většinou závislé na komerčních databázích (MS SQL, Oracle) 11
nejznámější a nejpouţívanější je SharePoint Server od firmy Microsoft, který je omezený na OS MS Windows b. freeware a open source řešení mnoţství řešení na všech webových platformách nejznámější řešení jsou WordPress, Drupal, Joomla postavené na platformě PHP, Plone na platformě Python výhody: o neplacené řešení o většinou nezávislé na komerčních databázích ani operačních systémech (nejvíc řešení je na platformě PHP s podporou MySQL) nevýhody: o řešení nemá garantovanou podporu ani další vývoj
12
2 NÁVRH ŘEŠENÍ ŠKOLNÍHO INTRANETU Cílem této části práce je stanovit základní poţadavky na školní intranet a na jejich základě vybrat vhodné řešení CMS. Návrh je do velké míry obecný a proto se nezabývá některými konkrétními aspekty řešení jako je infrastruktura, do které má být systém zasazen, návrh uţivatelského rozhraní, bezpečnost, atd.
2.1 Vize školního intranetu Cílem této kapitoly je nastínit poţadavky pro výběr vhodného řešení a pro následný návrh systému. Školní intranet by měl být doplňkovým systémem k jiţ existujícím školním informačním systémům a měl by splňovat základní publikační a komunikační poţadavky pro činnost zaměstnanců. Měl by ale být snadno rozšiřitelný pro další potřeby. Systém musí být strukturovaný, a to tak, aby v něm byla zahrnuta taky organizační struktura společnosti. Část intranetu bude tedy obsahovat sekce, které budou odpovídat jednotlivým organizačním jednotkám společnosti (vedení, úseky, rektorát, katedry). Kaţdá sekce bude mít svého administrátora, který bude odpovědný za obsah ve své sekci a bude přidělovat práva na přístup do ní. Protoţe se jedná o pracovní nástroj pro potřeby organizace, tak je nutné, aby byly uţivatelé při vstupu do systému autorizovaní. Podle přístupových práv, která jim přidělí administrátor, si budou moci prohlíţet, nebo taky vytvářet a spravovat obsah. Publikovaný obsah jednotlivých sekcí bude mít moţnost být přístupný pouze uţivatelům dané sekce, nebo všem uţivatelům. Intranet by měl mít také obecnou část, která bude přístupná všem zaměstnancům a v které budou sdělení, články, dokumenty, formuláře, ankety a diskusní fóra, týkající se celé organizace. Základní typy obsahu na intranetu by měli být: - článek - diskusní fórum - anketa V rámci těchto typů obsahu by měli být splněny poţadavky na publikaci informací o dění v jednotlivých organizačních jednotkách, kontaktních informací, oznámení. Systém by měl rovněţ umoţňovat nahrání souborů (dokumentů) na server a jejich sdílení v rámci typu
13
obsahu „článek“. Obsah by měl mít více stavů, minimálně jestli má být publikován nebo ne. Správu celé aplikace bude zabezpečovat pověřený člověk z katedry IT, který bude mít „superadministrátorská“ práva do systému a bude mít na starosti taky provoz celé aplikace. Tento administrátor bude zakládat základní sekce a přidělovat jim jednotlivé administrátory. Z tohoto důvodu je nutné, aby systém umoţňoval více úrovní uţivatelských rolí. Nastíněné poţadavky zdůvodňují rozhodnutí postavit školní intranet právě na CMS. V prostředí organizace jako je škola se nepředpokládá existence velkého a stabilního vývojového týmu, který je pro vývoj takovéto aplikace zapotřebí. Proti moţnosti outsourcingu vývoje zas mluví vysoké náklady. Pro tuto práci budeme tedy zvaţovat jenom pouţití jiţ hotového řešení.
2.2 Struktura intranetu Intranet bude obsahovat několik základních sekcí, které budou obsahovat další podsekce. První dvě základní sekce budou obecné pro všechny zaměstnance, další dvě jiţ budou rozděleny podle organizační struktury organizace školy. Jako inspirace byla pouţita organizační struktura BIVŠ, datum revize 1. 4. 2010. Oznámení (Novinky) – bude obsahovat důleţitá sdělení pro všechny zaměstnance Dokumenty o Předpisová základna – předpisy celé organizace o Uţitečné dokumenty – potřebné obecné dokumenty, formuláře pro všechny zaměstnance Správa organizace o Vedení společnosti o Obchodní úsek o Úsek logistiky o Finanční úsek Správa školy o Rektor (Vedení školy)
14
o Studijní oddělení o Knihovna o Katedra informatiky a elektronického obchodování o Katedra ... (další katedry) o Konzultační středisko Karlovy Vary o Konzultační středisko ... (další konzultační střediska)
2.3 Katalog poţadavků P1: Administrace uživatelů P.1.1. Zaloţení/editace/smazání uţivatelské role P.1.1.1. Vytvoření/editace/smazání názvu role P.1.1.2. Nastavení oprávnění P.1.2. Zaloţení/editace/smazání uţivatele P.1.2.1. Vytvoření/editace/smazání uţivatelského jména P.1.2.2. Přiřazení/odebrání uţivatelské role P2: Administrace sekcí P.2.1. Zaloţení/editace/smazání sekce P3: Správa obsahu P.3.1. Vytváření/editace/mazání článků P.3.1.1. Nastavení stavu článku (zobrazit/nezobrazit, zobrazit na homepage) P.3.1.2. Nastavení oprávnění ke článku P.3.2. Upload dokumentů P.3.2.1. Nastavení oprávnění k dokumentům P.3.3. Vytváření/editace/mazání anket P.3.3.1. Sledování výsledků anket P4: Zobrazování obsahu P.4.1. Homepage – souhrn nejnovějších článků s příznakem „zobrazit na homepage“ P.4.2. Zobrazení obsahu pro uţivatele se základní autorizací (pouze autentizovaného) P.4.3. Zobrazení obsahu vyţadujícího příslušnou autorizaci
15
2.4 Model případů uţití Pro lepší znázornění základních vztahů uţivatelů systému s jeho funkcemi, je pouţitý diagram případů uţití. Jednotlivé případy uţití byly vytvořeny na základě katalogu poţadavků. Obrázek č. 1: Diagram případů užití školního intranetu
Zdroj: vlastní
16
2.5 Výběr vhodného řešení Posouzení vhodnosti pouţití některého řešení bylo rozdělené na dvě části. Cílem této kapitoly bylo dospět k výběru platformy a dvou CMS, které jsou pak v následující kapitole podrobené detailnějšímu zkoumání. Při výběru řešení bylo postupováno podle následujících poţadavků, které jsou řazeny tak, aby postupně zuţovaly výběr moţností: 1. Musí být nezávislé na operačním systému, resp. být provozovatelné na většině pouţívaných současných operačních systémů (Windows, Linux, Unix). 2. Musí být zdarma včetně databáze. 3. Musí běţet na široce pouţívané platformě. 4. Musí mít silnou vývojářskou podporu. 5. Musí být snadno rozšiřitelné. 6. Musí co nejlépe zvládat poţadovanou funkcionalitu popsanou ve vizi školního intranetu a katalogu poţadavků. 1. Musí být nezávislé od operačního systému Nezávislé od operačního systému jsou řešení na platformách PHP, Java, Perl, Ruby On Rails. Vyřazené z rozhodování jsou teda řešení na platformě .NET, která jsou primárně orientovaná na operační systém Windows. 2. Musí být zdarma včetně databáze Mnoţství CMS jsou Open Source projekty distribuované pod GPL licencí. Open Source software je počítačový software s otevřeným zdrojovým kódem. Pod otevřeností zde rozumíme nejen technickou dostupnost kódu, ale taky legální dostupnost. Open Source software je šířen pomocí několika typů licencí, které umoţňují, při dodrţení jistých podmínek, uţivatelům zdrojový kód vyuţívat, například prohlíţet a upravovat. GNU GPL1 je licence pro svobodný software, původně napsaná Richardem Stallmanem pro projekt GNU2. GPL vyţaduje, aby byla odvozená díla dostupná pod toutéţ licencí. Znamená to, ţe poskytuje uţivatelům počítačového programu práva svobodného softwaru a pouţívá tzv. copyleft k zajištění, aby byly tyto 1 2
GNU GPL - General Public License, česky „všeobecná veřejná licence GNU“ GNU - Nekompletní počítačový systém pod rekurzivní zkratkou „GNU's Not Unix!“ (GNU Není Unix!)
17
svobody ochráněny, i kdyţ je dílo upraveno. Toto je rozdíl oproti permisivním licencím svobodného softwaru, jejímţ typickým případem jsou BSD1 licence. Velká většina z Open Source CMS běţí na platformě PHP podporované databází MySQL nebo PostgreSQL, které jsou šířeny stejným způsobem. 3. Musí běžet na široce používané platformě PHP je nejpouţívanější webovou platformou v Čechách12 a jednou z nejpouţívanějších na celém světě. Většinou je součástí kompletní sady svobodného software pouţívaného pro implementaci dynamických webových stránek pod zkratkou LAMP, která zahrnuje tyto technologie: a. Linux – operační systém b. Apache – webový server c. MySQL – databázový systém d. PHP – programovací jazyk Při pouţití jiného operačního systému se pouţívá zkratka AMP, nebo přímo zkratka pro implementační sadu pro konkrétní OS (WAMP pro Windows, MAMP pro Mac OS, SAMP pro Solaris, nebo OAMP pro OpenBSD). Na základě předchozích 3 bodů byla zvolena jako platformu pro implementaci školního intranetu Open Sourcová webová technologei PHP. Z toho vychází další body, které se zabývají přímo výběrem CMS. 4. Musí mít silnou vývojářskou podporu Podle výsledků ocenění Open Source CMS Award3 za poslední 3 roky se opakují na předních pozicích v kategoriích „Nejlepší CMS“ a „Nejlepší CMS pro PHP“ projekty WordPress, Drupal a Joomla!. Tyto projekty mají za sebou jiţ delší vývoj, jsou obecně známé a mají širokou vývojářskou podporu (tisíce vývojářů Open Source komunity). Všechny mají silné zázemí taky v ČR a samozřejmě i lokalizované verze.
1
BSD - Berkeley Software Distribution Zdroj Verze PHP v ČR – únor 2010, http://php.vrana.cz/verze-php-v-cr-unor-2010.php 3 Open Source CMS Award - Zdroj Packt Publishing, http://www.packtpub.com/award 2
18
5. Musí být snadno rozšiřitelné Z trojice WordPress, Drupal a Joomla! vyhovují poţadavku na snadnou rozšiřitelnost zejména vlastním vývojem hlavně Drupal a Joomla!. WordPress je především blogovacím systémem, který byl navrţen pro co nejjednodušší zprovoznění a co největší uţivatelský komfort, tak aby byl pouţitelný hlavně pro lidi bez jakýchkoliv znalostí technického pozadí řešení. Nepředpokládá velké přizpůsobování a vývoj ze strany uţivatelů. 6. Musí co nejlépe zvládat požadovanou funkcionalitu Tento poţadavek bude rozveden v příští kapitole, v které budou detailně porovnány CMS systémy Drupal a Joomla.
2.6 Porovnání Drupal a Joomla! Pro porovnávání funkcionality byly pouţité informace získané zejména z domovských stránek projektu, ale i z článků uţivatelů systémů. Pro posouzení vhodnosti pouţití na základě vlastních zkušeností jsem si nainstaloval a zprovoznil obě CMS v jejich poslední stabilní verzi: Drupal verze 6.16 a Joomla! verze 1.5.15. Jako webové prostředí byl pouţit WAMP5 server ve verzi 1.7.4, který obsahuje Apache 2.2.6, PHP 5.2.5 a MySQL 5.0.45. Vhodnost některého z řešení byla posuzována podle toho, jak dobře splňovalo poţadavky, které byly popsané ve vizi a v katalogu poţadavků. Dalšími kritérii byly uţivatelská přívětivost z pohledu uţivatele i administrátora, snadnost instalace, moţnosti rozšíření a také reference.
2.6.1 Drupal Open source projekt šířený pod GNU GPL licencí. Je vhodný pro širokou paletu pouţití: od osobních blogů aţ po korporátní prezentace a velká komunitní webová sídla. Původně byl napsán Dries Butyaertem jako aplikaci pro internetovou diskusi (message board) v roce 2000. Od svého vydání v roce 2001 zaznamenal bouřlivý rozvoj a v současnosti patří k nejpouţívanějším, nejpodporovanějším a nejoceňovanějším CMS. Je pouţíván mnoha organizacemi nejrůznějšího zaměření, např. MTV UK, Sony Music, Warner Brothers, New York Observer, AOL Corporate, Portland State University, White House.
19
Má početnou vývojářskou komunitu a obrovské moţnosti rozšíření. I kdyţ je Drupal často označován jako Content management system, je to taktéţ Content management framework (CMF). To znamená, ţe na rozdíl od jiných CMS je vytvářen směrem k co největší konfigurovatelnosti a přízpůsobitelnosti. Filosofií Drupalu je poskytnout moţnost vytvářet si aplikaci podle vlastních preferencí, tj. poskytnout výkonné jádro se základní funkcionalitou a tu dále rozšiřovat na modulárním principu. Momentálně je k dispozici téměř 6000 rozšiřujících modulů.
Seznam klíčových vlastností Tvorba "knih" - tj. webových stránek svázaných v nějaké hierarchické struktuře (kapitoly, sekce, podsekce a pod.). Hodí se zejména pro tvorbu návodů, průvodců, FAQ a pod. Přátelské URL - Pouţívání funkce Apache mod_revrite, umoţňující pouţívaní člověku i vyhledávačům srozumitelných URL. Moduly - mnoţství modulů rozšiřujících základní funkcionalitu jádra Drupalu Personalizace - robustní personalizační prostředí přímo v jádru Drupalu umoţňuje personalizovat jak obsah, tak zobrazení na základě uţivatelských preferencí. Autorizační systém zaloţený na uţivatelských rolích. Vyhledávání - veškerý obsah je plně indexovatelný a prohledávatelný. Správa uţivatelů - pro autentizaci1 uţivatelů můţe být pouţito lokální ověření jménem a heslem, nebo lze vyuţit externích autentizačních zdrojů jako Jabber, Blogger, LiveJourlnal nebo jiný web zaloţený na Drupalu. Zejména pro pouţití na intranetu můţe být Drupal integrovaný s LDAP2 serverem. Anketní modul - umoţňuje vytvářet jednoduché ankety, které mohou být přístupné pouze vybraným skupinám uţivatelů. Šablonovací systém, který pouţívá HTML a PHP, takţe není nutné se učit speciální šablonovací jazyk. Vláknové komentáře - silný hierarchický systém pro diskuze k publikovanému obsahu.
1
Autentizace - proces ověření proklamované identity subjektu LDAP – protokol pro ukládání a přístup k datům na adresářovém serveru, které jsou uspořádány ve stromové struktuře, jehoţ součástí je autentizace a autorizace klienta 2
20
Správa verzí obsahu - detailně zaznamenává všechny změny, jejich čas a autora, je moţné vracet se ke starším verzím obsahu. Blog Api - umoţňuje publikovat blogy vytvořené v desktopových blogovacích nástrojích. Sdruţování a export obsahu v RDF/RSS formátu. News aggregator - silný nástroj na čtení zpráv z jiných webů. Reporty s informacemi o návštěvnosti jednotlivých stránek, refererech a chování uţivatelů na webu. Vytváření logů pro administrátora systému. Administrace přes webové rozhraní. Caching - umoţňuje ukládat jiţ vygenerované HTML stránky do databáze a v zprostředkovat je v případě opětovného poţadavku na ně, čím se rapidně sniţuje počet poţadavků do databáze a zvyšuje se výkon.
Architektura Drupalu Je rozdělená do 5 vrstev a znázorňuje tok generování výsledného webového dokumentu směrem od jádra. 1. V jádru systému je datové úloţiště, v kterém se nacházejí nody. Nody jsou ucelené jednotkové části obsahu určitého typu. Udrţují strukturované informace o datových objektech Drupalu (článcích, komentářích atd.). Kaţdý nod má svůj typ, identifikátor, název, datum vytvoření, autora, obsah a další vlastnosti. Základní typy obsahu jsou: Článek blogu (Blog entry), Stránka knihy(Book page), Komentář(Comment), Fórum(Forum), Stránka(Page), Anketa(Poll), Přiběh(Storry). 2. Moduly. Jsou to funkční plug-iny, které jsou součástí jádra Drupalu, nebo byly vytvořeny členy Drupal komunity. 3. Bloky a menu. Bloky jsou často výstupem modulu a můţou být umístěné na různých místech šablony. 4. Uţivatelská práva. 5. Na nejvyšší vrstvě je šablonovací systém. Šablony jsou vytvářeny hlavně pouţitím XHMTL a CSS s pouţitím PHP tokenů, které zprostředkovávají dynamicky generovaný obsah.
21
Obrázek č. 2: Architektura CMS Drupal
Zdroj: http://drupal.org/getting-started/before/overview
Základní zkušenosti Instalace probíhá krokově pomocí internetového prohlíţeče. Je nutné mít k dispozici vytvořenou databázi zpřístupněnou pro databázového uţivatele, kterého zadáme při instalaci. Je moţné si stáhnout lokalizační balík, který po rozbalení do kořenového adresáře Drupalu zabezpečí lokalizaci jiţ přímo při instalaci. Při instalaci si aplikace vyţádala zdvojnásobení limitu paměti pro PHP oproti výchozímu nastavení a lokalizační procedura nedoběhla aţ do konce! Po úspěšné instalaci jsme přihlášeni do systému pod administrátorskými právy a můţeme vytvářet a spravovat další uţivatele, vytvářet nový obsah a administrovat aplikaci.
22
Obrázek č. 3: Administrační sekce CMS Drupal
Zdroj: screenshot webového prohlíţeče
Administrační prostředí je stejné jako front-end webu a můţe být proto pro uţivatele, zvyklé na odlišný back-end, matoucí. Toto je moţné částečně řešit nastavením samostatného tématu pro administraci. Pro administrátory je k dispozici modul Administrator, pomocí kterého je generováno JavaScriptové menu, které velice usnadňuje přístup k administračním funkcím webu. Administrace je rozdělená do sekcí: Content management - správa kategorií (taxonomie), správa komentářů, správa obsahu a typů obsahu, RSS. Site building - vytváření bloků, menu, správa modulů, překlad rozhraní, výběr z předdefinovaných témat vzhledu.
23
Site configuration - různá nastavení aplikace jako datum, povolené akce, nastavení logování, cachingu, čistých URL, ale taky nastavení rozšiřujících modulů, pokud nějaké nastavení umoţňují. User management - správa rolí, uţivatelů a uţivatelských oprávnění. Reports - přehledy logů, stavu. Správa uţivatelů je jiţ v základu velmi bohatá. Kromě výchozích rolí „anonymní uţivatel“ a „autorizovaný uţivatel“ je moţné vytvářet další role. Rolím je moţné přidělovat, resp. omezovat práva na přístup k stránkám nebo akcím (např. přidat komentář, editovat obsah článku). Je taky moţné nastavit moţnosti registrace uţivatelům se souhlasem administrátora nebo bez něj. Vytváření dokumentů je jednoduché, i kdyţ v základu jsou k dispozici pouze 2 typy obsahu (stránka a článek). Další typy obsahu je moţné si vytvořit, nebo jsou součástí rozšiřujících modulů. V základu taky není ţádný WYSIWYG editor. Je ale moţné vybrat si z mnoţství modulů, které je implementují. Aktuálně je nejlepší a taky doporučené pouţít modul WYSIWYG API, pomocí kterého je moţné pouţít některý z editorů CKEditor, FCKeditor, jWysiwyg, markItUp, NicEdit, openWYSIWYG, TinyMCE, Whizzywig, WYMeditor, YUI editor. Workflow - dokument v základu můţe mít jen 3 typy stavů: vydáno, zobrazit na titulní stránce, přilepit nahoru v seznamu. V jeho správě je zahrnuta taky moţnost verzování, je ale nutné označit, ţe upravovaná verze je nová revize. K jakékoliv předchozí revizi je moţné se kdykoliv vrátit. Tyto moţnosti lze rozšířit prostřednictvím modulu Workflow.
2.6.2 Joomla! Stejně jako Drupal je Joomla! open source projekt šířený pod GNU GPL licencí a má taky stejné zaměření. Vychází ze staršího projektu Mambo, od kterého se v roce 2005 oddělil kvůli neshodám vývojářů. Má velmi početnou vývojářskou komunitu a stejně jako Drupal patří k nejpopulárnějším a nejoceňovanějším CMS. Mezi organizace, které Joomla! pouţívají patří například MTV Networks Quizilla, Harvard University nebo Citibank (intranet).
24
Joomla! také klade velký důraz na rozšiřitelnost, i kdyţ je pořád blíţe ke kompaktním CMS neţ Drupal. V současnosti je k dispozici více neţ 4700 rozšíření, mnoţství z nich je ale šířeno pod komerční licencí.
Seznam klíčových vlastností Správa uţivatelů: -
9 uţivatelských skupin s mnoţstvím typů práv na přístup, editaci, publikování a administraci
-
podpora mnoţství autentizačních protokolů zahrnujících LDAP, OpenID a Gmail
Správa jazyků: -
podpora mnoţství světových jazyků s UTF-8 kódováním
-
vícejazyčná podpora
Správa bannerů Správa kontaktů Ankety Vyhledávání Správa hyperlinků Správa obsahu - zjednodušený třístupňový systém článků: -
zabudovaný WYSIWYG editor
-
moţnost odeslat článek emailem, ohodnotit, nebo vyexportovat do PDF
Správa šablon: -
umoţňuje vytvářet vlastní vzhed pro celé webové sídlo i kaţdou sekci zvlášť
-
zaloţená na PHP + XHTML
Integrovaná nápověda Systémové vlastnosti - ladění výkonu pomocí cachingu a GZIP kompresi: -
debuggovací mód a chybové reporty pro administrátora
-
FTP vrstva pro instalaci rozšíření bez nutnosti povolovat zápis do všech adresářů
-
komunikace administrátora s uţivateli pomocí privátních nebo masových emaliů
25
Podpora webových sluţeb Rozšiřitelnost: -
komponenty - přidaná funkcionalita rozsáhlejšího charakteru (např. správa dokumentů)
-
pluginy (v starších verzích mamboti) - přidaná funkcionalita, která pozměňuje chování celé aplikace (například zobrazování nějakých prvků, nastavení autentizace)
Základní zkušenosti Instalace se spustí, stejně jako u Drupalu, navedením prohlíţeče do adresáře v document rootu webu, kde je Joomla! umístěná. Instalace je lokalizovaná (dokonce sama rozpoznala prostředí a nabídla češtinu!) a rozdělená do několika kroků. V rámci nich si aplikace ověří webové prostředí (verzi Apache, PHP a jejich potřebné nastavení, případně moduly), poţádá o nastavení databáze, volitelnou moţnost FTP a administrátorský email a heslo. Zvláštní nabídkou je moţnost naplnit aplikaci daty demo verze, na kterých je moţné se správu CMS naučit. Po ukončení instalace je poţadováno odstranění instalačního adresáře, jedná se o bezpečnostní opatření. Celá instalace proběhla bez nejmenších problémů a po té se objevilo velice přehledné administrátorské rozhraní s příjemnými ikonkami hlavních správcovských funkcí, rozbalovacím menu a sekcí pro administrátorské statistiky. Lokalizace proběhla pomocí utility přístupné z menu Extensions->Install, coţ je univerzální rozhraní na přidávání nebo odebírání všech rozšíření a velice usnadňuje práci administrátora. Stačí stáhnout rozšiřující balíček a aplikace ho sama nahraje na server a zajistí jeho deployment. Lokalizace je narozdíl od Drupalu mnohem komplexnější, coţ bylo ale moţná způsobeno popisovanými problémy při instalaci Drupalu.
26
Obrázek č. 4: Administrační sekce CMS Joomla!
Zdroj: screenshot webového prohlíţeče
V administrační nabídce jsou ikony s hlavními funkcemi: Přidat nový článek Správce článků Správce titulní stránky Správce sekcí Správce kategorií Správce médií Správce nabídky Správce jazyků Správce uţivatelů Globální nastavení
27
Dále v menu jsou další funkce, z kterých nejdůleţitější jsou Správce komponent Správce šablon Správce modulů a zásuvných modulů Správce jazyků Nástroje pro komunikaci administrátora s uţivateli Systémové informace Správa uţivatelů má v základu 7 rolí rozdělených do 2 sekcí: uţivatelská část 1. registrovaní 2. autor 3. editor 4. publisher správcovská část 1. manaţer 2. správce 3. super správce Tyto práva stačí, pokud není potřeba mít například zvláštní skupiny uţivatelů, kteří mohou mít přístup jenom do některých sekcí. Základem pro strukturované publikování článků je vytváření sekcí a kategorií. Jinými slovy kaţdý článek musí být v nějaké kategorii, která patří do nějaké sekce, kromě speciálního případu "nekategorizováno". Jisté omezení můţe vyplývat z faktu, ţe článek můţe být pouze v jedné kategorii. Články je moţné editovat ve vestavěném WYSIWYG editoru TinyMCE. Workflow - dokumenty se můţou nacházet ve stavech zveřejněn/nezveřejněn a zdali má být na titulní stránce. Je mu moţné nastavit přístupovou úroveň (veřejný, registrovaní, speciální – tj. uţivatelé s rolí autor a vyšší) a taky datum od kdy do kdy má být zveřejněn. Aplikace sice ukazuje počet změn dokumentu, ale verzovací systém v základu chybí. Opět je moţné doplnit jej pomocí rozšíření.
28
2.6.3 Vyhodnocení porovnání Pro porovnání byl pouţit taky server CMS Matrix (www.cmsmatrix.org), který se specializuje na CMS a poskytuje nástroj na porovnání jednotlivých CMS. Z mnoţství poloţek, které poskytuje, byly vybrány ty, které jsou relevantní pro náš návrh. Obrázek č. 5: Porovnání CMS Joomla! a Drupal na serveru CMS matrix
Zdroj: www.cmsmatrix.org, vlastní úprava
Z porovnání vyplývá, ţe rozdíly nejsou nijak zásadní, s výjimkou Granular Privileges, coţ znamená moţnost nastavovat oprávnění na jednotlivé stránky nebo typy obsahu a NTLM Authentication, coţ je moţnost vyuţít rozšířený autentizační protokol NTLM. 29
Získané poznatky byly shrnuty do přehledu kladných a záporných vlastností obou porovnávaných CMS a na jejich základě bylo zvoleno vyhovující řešení: Drupal Klady Prakticky neomezeně vnořených kategorií. Velmi dobře konfigurovatelná přístupová práva. Veliké moţnosti konfigurace stránek. Velké organizace vyuţívají spíše Drupal (Oficiální stránky Bílého domu – WWW.WHITEHOUSE.GOV, MTV, NASA, Greenpeace). Poměrně snadná instalace. Mnoho modulů, skoro všechny zadarmo. Obrovská komunita. Zápory Administrační rozhraní je přímo ve frontendu, coţ můţe způsobovat zmatení uţivatele Základní šablony jsou poněkud strohé a někomu nemusí vyhovovat. Počet volně staţitelných šablon je asi i o něco méně neţ u Joomly Někdy problém dohledat dokumentaci k některým modulům
Joomla! Klady Snadná instalace. Přívětivé administrační rozhraní - oddělené od samotných stránek. Snadné psaní obsahu, jiţ v základu TinyMCE (Javascript HTML WYSIWYG editor). Velké mnoţství komponent, modulů, pluginů. Snadná instalace jazyků, komponent, modulů, šablon. Časté aktualizace, nové verze. Velká komunita, mnoho uţivatelů. Lze snadno vytvořit mnohojazyčný web. 30
Snadné vytváření šablon. Zápory Řešení obsahuje mnoţství souborů, je velmi robustní, a při potřebě úprav se těţko hledají zdrojové soubory. Pouze dvouúrovňová struktura (Sekce-Kategorie-Článek). Limitovaná nastavení uţivatelských oprávnění, nelze vytvářet vlastní. Mnoţství kvalitních modulů a komponent je pouze placených, nebo mají omezenou funkčnost. Zejména kvůli moţnostem konfigurace stránek, nastavení uţivatelských oprávnění, neomezenému mnoţství vnořených kategorií a také referencím bylo pro CMS školního intranetu zvoleno řešení Drupal.
31
3 POSTUP IMPLEMENTACE Jak vyplývá z předchozích kapitol, nejedná se v našem případě o vývoj celé aplikace, ale více méně o konfiguraci funkcionalit aplikačního frameworku. Vytvoření webové aplikace tohoto typu tedy nevyţaduje nutnost programování, i kdyţ v případě poţadavků na začlenění specifických aplikací, pokročilejší vizuální nebo funkční přizpůsobení, nebo integraci s dalšími firemními aplikacemi, se bez něj neobejdeme. Na moţnost rozšíření pomocí programování bylo pamatováno při výběru CMS, ale pro poţadovanou základní funkcionalitu nebude programování potřeba. Realizace intranetu v rámci zvoleného řešení bude obsahovat zejména zprovoznění webového prostředí pro běh CMS frameworku, jeho instalaci, vytvoření struktury intranetu, nastavení uţivatelských oprávnění, konfiguraci vstavěných funkcionalit, nalezení a doinstalování potřebných modulů pro funkcionalitu, která není součástí základní instalace.
3.1 Konfigurace a zprovoznění webového prostředí Navrhované intranetové řešení bude provozováno na webovém prostředí postaveném na bázi webového serveru Apache, technologie PHP a databázového serveru MySQL. Obrázek č. 6: Architektura webového řešení
Zdroj: vlastní
32
3.1.1 Instalace webového prostředí pod OS Linux Pro svět operačního systému Linux existuje spousta moţností instalace potřebného webového prostředí. Je moţné stáhnout si zdrojové kódy a zkompilovat je a pak nainstalovat, ale ve většině současných distribucí Linuxu jsou Apache, PHP a MySQL jejich součástí a je moţné je velice jednoduše nainstalovat pouţitím balíčkovacího systému konkrétní distribuce. Příklad instalace pomocí balíčkovacího systému APT (Advanced Packaging Tool) pro distribuci Debian: instalace samotného apache2: apt-get install apache2-mpm-prefork instalace mysql serveru 5: apt-get install mysql-server-5.0 instalace php: apt-get install php5 php5-cli php5-gd
php5-mcrypt
php5-mhash php5-mysql
instalace phpmyadmin: apt-get install phpmyadmin
3.1.2 Instalace webového prostředí pod OS Windows Adresářová struktura Pro instalaci Apache, MySQL a PHP můţeme vytvořit například následující adresářovou strukturu: Apache: c:\www\Apache2 MySQL: c:\www\MySQL PHP: c:\www\php Kořenový adresář webu: c:\www\docs Instalace webového serveru Apache Při instalaci webového serveru Apache (spuštění souboru httpd-2.2.15-win32-x86-openssl0.9.8m-r2.msi, který stáhneme z httpd.apache.org) si zvolíme uţivatelskou moţnost instalace, abychom mohli změnit instalační adresář na c:\www. Při instalaci se vytvoří ve Windows nová sluţba Apache2, která je nastavená na automatické spouštění. Tato sluţba je vlastní HTTP server a je moţné ji monitorovat, zastavit, spustit nebo restartovat pomocí aplikace Monitor Apache Servers. 33
Instalace PHP PHP můţeme nainstalovat jako modul, CGI nebo FastCGI, ale většinou se pouţívá první moţnost, tj. instalace PHP jako modul Apache serveru. Instalační balíček PHP si stáhneme ze serveru cz.php.net. Nejnovější verze je PHP 5.3.2, ale vzhledem k velkým změnám, které v této verzi nastaly a způsobily nekompatibility s mnoţstvím webových aplikací, je pořád podporovaná a updatovaná taky větev PHP 5.2, která je momentálně ve verzi 5.2.13. Tuto verzi (soubor PHP-5.2.13-Win32.zip) si teda stáhneme a rozbalíme do c:\www\php. Poté přesuneme DLL knihovny z c:\www\php, které nezačínají na php5, do c:\windows\system32 kvůli moţnosti, ţe v systému jsou jiţ zavedené starší verze těchto knihoven. Instalace MySQL Stáhneme si aktuální instalační soubor ze serveru www.mysql.com (v současnosti je MySQL ve verzi 5.1.48 a instalační soubor je mysql-essential-5.1.48-win32.msi), rozbalíme ho a provedeme uţivatelskou instalaci do adresáře c:\www\mysql.
3.1.3 Konfigurace Apache, PHP a MySQL Konfigurační soubor HTTP Apache serveru se bude po korektně provedené instalaci nacházet v c:\www\Apache2\conf\httpd.conf pro Windows, nebo pro Linux například v
/etc/httpd/conf/httpd.conf
nebo v /usr/local/Apache/conf/httpd.conf,
podle konkrétní distribuce. Nejdřív nastavíme DocumentRoot, kde chceme mít kořenový adresář webu, například: DocumentRoot "c:/www/docs"
Důleţitá je dále poloţka Listen, která říká, na které IP adrese a portu bude HTTP server naslouchat, například: Listen 127.0.0.1:80 Listen 192.168.1.2:80
Následně povolíme různé moţnosti a sluţby na kořenovém adresáři webu a jejich moţnou změnu pomocí souboru .htaccess, například:
34
Options Indexes Includes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all
Konfigurace Apache pro podporu PHP Tuto konfiguraci provedeme rovněţ v konfiguračním souboru Apache httpd.conf: Nejdřív musíme přidat moţnost indexového souboru pro PHP, tj. aby webserver vybral pro generování stránky skript index.php, pokud je v HTTP poţadavku pouze URL k adresáři. To se děje typicky při volání domovské stránky. Toto nastavíme přidáním index.php do direktivy DirectoryIndex: DirectoryIndex index.html index.htm index.php
Pro to, aby Apache věděl, odkud si má modul pro PHP nahrát, musíme pro něj nastavit cestu: LoadModule php5_module "c:\www\php\php5apache2_2.dll" (pro Windows)
nebo
například "modules/libphp5.so" (pro Linux/Unix) Dále je nutné přidat tyto nastavení: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps AddType text/html
php
AddHandler php5-script php
Vlastní konfigurace PHP Konfigurace PHP se provádí v souboru php.ini. Základní úpravou je povolení řady rozšíření, které jsou implicitně zakázány a nastavení adresáře pro načítání těchto rozšíření. Povolení se provádí odkomentováním odkazu pro potřebné knihovny rozšíření, třeba následovně:
35
Pro Windows: extension_dir = "c:\www\php\ext" extension=php_curl.dll extension=php_gd2.dll extension=php_mbstring.dll extension=php_pdo.dll extension=php_xmlrpc.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_sqlite.dll extension=php_pdo_mysql.dll extension=php_pdo_sqlite.dll
Pro Linux/Unix: extension_dir = "/opt/" extension=php_curl.so extension=php_gd2.so extension=php_mbstring.so extension=php_pdo.so extension=php_xmlrpc.so extension=php_mysql.so extension=php_mysqli.so extension=php_sqlite.so extension=php_pdo_mysql.so extension=php_pdo_sqlite.so
Tímto jsou povolené rozšíření pro práci s MySQL 4.0 (mysql), MySQL 4.1 a vyšší (mysqli), SQLite, PDO, GD2, CURL a další.
3.1.4 Otestování instalace Otestování PHP a Apache Vytvoříme si soubor index.php s následujícím obsahem:
Soubor umístíme do kořenového adresáře webu a nastartujeme, nebo restartujeme Apache server
(například
pouţitím
Apache
Monitor
ve
Windows
nebo
pouţitím 36
apache/bin/apachectl start nebo restart v Linux/Unix). Po zadání adresy localhost
do prohlíţeče by se měla zobrazit informační stránka o konfiguraci PHP: Obrázek č. 7: Informační stránka konfigurace PHP
Zdroj: screenshot webového prohlíţeče
Zpráva MySQL Databázi MySQL je moţné zpravovat pomocí webové aplikace phpMyAdmin. Stáhneme si aplikaci ze serveru www.phpmyadmin.net a rozbalíme ji do připraveného podadresáře v kořenovém
adresáři
webu
(například
dbadmin).
Přejmenujeme
soubor
config.sample.inc.php na config.inc.php a zkonfigurujeme například takto:
37
$cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'heslo'; $cfg['Servers'][$i]['compress'] = true; $cfg['Servers'][$i]['extension'] = 'mysqli';
Po správné konfiguraci by měla na url http://localhost/dbadmin běţet webová správa databáze. Obrázek č. 8: Webové rozhraní správy databáze phpMyAdmin
Zdroj: screenshot webového prohlíţeče
38
3.2 Konfigurace CMS Drupal pro školní intranet Instalace, základní struktura a některé moduly Drupalu byly jiţ popsány při porovnávání CMS. Nyní si popíšeme základní postupy a moduly, které potřebujeme při vytváření intranetu. Externí moduly se instalují tak, ţe se po staţení rozbalí do adresáře modules a následně povolí v administraci v sekci „Moduly“. Podle určení se pak jejich funkcionalita objeví v různých částech administrační sekce, např. jako samostatný odkaz v menu, nebo jako rozšířená funkcionalita jiţ existujícího modulu. V průběhu přípravy této sekce bylo otestováno mnoţství modulů v prostředí, které je zmíněno v kapitole Výběr vhodného CMS. Cílem bylo vybrat vhodné moduly a jejich kombinace k realizaci našich poţadavků.
3.2.1 Vytváření sekcí Pro vytvoření struktury webu je nutné vytvořit sekce podle struktury webu. K tvorbě sekcí je moţné přistoupit různými způsoby. Nejčastěji se pouţívá kategorizace pomocí typu obsahu, nebo pomocí modulu Taxonomy, který je obsaţený v jádře Drupalu.
My
pouţijeme druhou moţnost. Taxonomie je v české lokalizaci přeloţena jako sekce „Kategorie“ a nachází se v administraci v sekci „Správa obsahu“. Podstatou je vytváření takzvaných slovníků pojmů, které popisují, do které sekce webu patří konkrétní stránka. V nastavení slovníku se taky určuje pro jaký typ obsahu je zvolení kategorie poţadované. V našem případě si tedy můţeme vytvořit například typ obsahu „článek katedry“ a k němu slovník „Katedry“, v kterém budou obsaţeny pojmy s názvy jednotlivých kateder.
3.2.2 Vytváření menu Po vytvoření kategorií můţeme vytvářet obsah v těchto kategoriích, ale tyto kategorie zatím nemáme nijak přístupné přes menu. Drupal sice obsahuje v základě modul menu na vytváření strukturované nabídky odkazů, ty ale nesouvisejí s kategoriemi. Proto musíme pouţít nějaký externí modul, který nám tuto relaci vytvoří. Z dostupných modulů byl vybrán modul Taxonomy Menu. Po jeho nainstalování a aktivování se objeví v nastavení slovníku v sekci kategorie (Taxonomy) nová sekce „Taxonomy menu“, v které je moţné vybrat úroveň menu, v které se má daná struktura zobrazovat.
39
Pro vytvoření rozbalovacích menu, kde se po najetí myší vysouvá podmenu s kategoriemi, které jsou na hierarchicky niţší úrovni, můţeme pouţít modul Nice Menus a jeho rozšíření Nice Menus based on Taxonomy.
3.2.3 Správa uţivatelů Drupal podporuje správu uţivatelů a jejich práv na základě rolí. V základním nastavení jsou pouze role „Anonymní uţivatel“ a „Autentizovaný uţivatel“, co můţe stačit pro běţné pouţití, ale pro naše účely budeme potřebovat vytvořit další role pro autentizované uţivatele. Pro kaţdou sekci potřebujeme minimálně 3 kategorie uţivatelů – Uživatel (vidí privátní obsah sekce), Editor a Administrátor, takţe musíme pro kaţdou vytvořit roli – např. „Uţivatel sekce katedra IT“, „Editor sekce katedra IT“, „Administrátor sekce katedra IT“. Vzhledem k tomu, ţe potřebujeme mít omezený přístup do jednotlivých sekcí, musíme nainstalovat modul Taxonomy Access Control, který je po aktivaci dostupný v sekci „Správa uţivatelů“ a umoţňuje přiřadit kaţdé uţivatelské roli uţivatelské práva nad kaţdou kategorií v kaţdém slovníku. Tyto práva jsou Zobrazit, Aktualizovat, Smazat, Vytvořit, a Seznam. Takţe například roli „Uţivatel sekce katedra IT“ přiřadíme nad kategorií „Katedra IT“ právo „Zobrazit“ a roli „Editor sekce katedra IT“ přiřadíme všechny práva. Pro roli „Administrátor sekce katedra IT“ budeme taky potřebovat určité práva na správu uţivatelů, konkrétně aby mohl přiřazovat uţivatelům role „Uţivatel sekce katedra IT“ a „Editor sekce katedra IT“. Toto je moţné pomocí dalšího externího modulu Role Delegation. V nastavení uţivatelských práv se po jeho instalaci objeví sekce „Modul role_delegation“, v které je moţné delegovat jakékoli roli právo nastavit uţivatelům pouze vybranou roli.
3.2.4 Autentizace uţivatelů Autentizace uţivatelů můţe probíhat klasickým způsobem zadaní uţivatelského jména a hesla, nicméně při provozování intranetu by bylo vhodnější pouţít některou se Single Sign On autorizací. Tato autentizace je zaloţená na tom, ţe uţivatel uţ je přihlášen a ověřen ve vnitřní síti a to je poté postačující k přihlášení se do intranetu. Toto umoţňují moduly Webserver authentification nebo LDAP integration, které podporují několik způsobů autentizace zaloţené na LDAP (např. NTLM/Active Directory).
40
3.2.5 Nahrávání dokumentů na server Pro moţnost nahrát na server soubory, na které lze pak odkazovat na vytvářených stránkách, slouţí modul Upload, který Drupal obsahuje jiţ v základu, jenom je nutné jej aktivovat. Tato moţnost je pak přístupná přímo při vytváření obsahu.
3.2.6 Ankety Podobně jako Upload se nachází v základních modulech taky modul Poll, který po aktivaci přidá do sekce „Vytvořit obsah“ moţnost vytvářet jednoduché ankety.
3.2.7 Vytváření typů obsahu Základními typy obsahu jsou stránka a článek, které obsahují pouze základní pole typu nadpis a text, ale máme moţnost si vytvářet vlastní typy obsahu. V základu ale neexistují nástroje na výrazné designování vlastního typu obsahu, takţe vlastní typy obsahu budou mít pořád strukturu článku nebo stránky. Kdyţ nám tyto typy obsahu přestanou stačit, je nutné pouţít externí modul CCK (Content Construction Kit), který umoţňuje přidat další pole do všech typů obsahu.
3.2.8 Pohledy Dalším důleţitým externím modulem je Views. Tento modul umoţňuje vytvářet různé pohledy na data, které jsme vloţili pomocí vkládaní obsahu. V našem případě bychom to mohli pouţít například pro generování seznamů předpisů v předpisové základně.
3.2.9 Úprava vzhledu Drupal umoţňuje úpravy vzhledu na různých úrovních: 1. Výběr z grafických témat, zabudovaných přímo v instalaci 2. Výběr z dalších stovek předpřipravených témat, které je moţné stáhnout, podobně jako moduly, z webu drupal.org 3. Vytvořit si vlastní téma Témata se v Drupalu ukládají do podadresáře themes v kořenovém adresáři Drupalu, takţe pro instalaci stáhnutého tématu jej stačí rozbalit do tohoto adresáře. Pak jej stačí povolit v administraci v sekci „Témata vzhledu“. V případě základního přednastaveného tématu Garland je moţné jít do jeho podrobnějšího nastavení, které obsahuje několik přednastavených barevných schémat a taky moţnost 41
vytvořit si vlastní schéma pomocí nastavení barvy jednotlivých grafických prvků (základní barva, barva odkazu, začátek a konec hlavičky, barva textu) výběrem z barevné škály. Dále je moţné vypnout a zapnout některé další prvky grafického layoutu jako logo, název webu, menu s primárními nebo sekundárními odkazy, ale také moţnost nahrát si vlastní logo a ikonku, která se zobrazuje v prohlíţeči na začátku adresního řádku. Pokud nestačí jiţ existující témata, je moţné si vytvořit vlastní. To ale předpokládá jiţ určitou znalost HTML, CSS a PHP. Základem témat jsou totiţ PHP stránky, které obsahují jak HTML kód, z kterého jsou volány další prvky webových dokumentů (CSS soubory, obrázky, JavaScriptové soubory), tak PHP příkazy. Pro ulehčení práce programátora je moţné pouţít tzv. skinovací funkce, tj. PHP funkce, které jsou předpřipravené pro generování prvků layoutu. Tyto funkce začínají klíčovým slovem theme a můţeme si je implementovat sami, nebo můţeme pouţít některý ze šablonovacích systémů, které Drupal podporuje, např. populární Xtemplate nebo Smarty, nebo výchozí systém PHPTemplate. Pro pouţití na intranetu, kde není nutná grafická atraktivita a výjimečnost, si ale myslím, ţe je moţné pouţít jiţ osvědčené fungující předdefinované šablony s mírnými grafickými úpravami, jako například obměna barevného schématu do barev, které škola pouţívá ve svojí „corporate identity“ a výměna loga.
42
ZÁVĚR A DOPORUČENÍ Cílem této práce bylo popsat pouţití systému pro správu obsahu jako základ pro realizaci školního intranetu. Koncepce školního intranetu, která byla konzultována s vedoucím bakalářské práce, vychází z moţných potřeb interní komunikace v rámci organizace vysoké školy, přičemţ jako inspirace byla pouţitá organizace BIVŠ. V průběhu práce jsem se zaměřil na vyhodnocení dostupných moţností s důrazem na co nejefektivnější a nejjednodušší řešení. Jako takové bylo vybráno CMS Drupal, které splňuje definované poţadavky. Po bliţším seznámení s tímto systémem jsem popsal postupy, které by mohly být pouţity při realizaci naší vize. Při realizaci této práce jsem dospěl k těmto zjištěním: 1. CMS systémy distribuované pod Open Source licencí jsou dnes jiţ zajímavou a pouţitelnou alternativou ke klasickému vývoji v oblasti webových aplikací. 2. CMS Drupal je vhodný pro realizaci školního intranetu, kromě jiţ zmíněných, také z těchto důvodů:
Nízké náklady: Kromě toho, ţe řešení je zdarma, zvládne implementaci i jeden člověk bez znalosti programování v relativně krátkém čase.
Rozšiřující moţnosti pomocí modulů jsou opravdu bohaté a lze s jejich pomocí realizovat námi definované poţadavky i mnoţství dalších případných poţadavků.
3. I kdyţ znamená pouţití Drupalu velké usnadnění, rozhodně se nejedná o triviální řešení:
Pro úspěšné vybudování webu je nutné hlubší pochopení jeho principů.
Pro
jakékoliv
sloţitější
řešení, kterým se
přes
zdánlivou
jednoduchost ukázal i náš školní intranet, je nutné pouţít externí moduly. Jejich hledání, výběr, konfigurace, kombinace s jinými moduly k dosaţení poţadované funkcionality a zároveň vyhýbání se konfliktu
s ostatními
budou
tvořit
zdaleka
největší
část
implementace.
43
Nedílnou součástí úspěšné realizace a provozu intranetu musí být vybudování procesů, které zajistí jeho vyuţití v souladu se stanovenými poţadavky. Aplikace musí být pro uţivatele dostupná a srozumitelná, obsah musí být aktualizovaný a atraktivní, její tvůrci by měli neustále být v kontaktu s uţivateli a reagovat na jejich poţadavky. To zahrnuje vytvoření struktury odpovědných a kompetentních lidí (administrátorů, editorů), kteří se o obsah aplikace a její rozvoj budou starat. Popsané řešení se omezuje pouze na technologické moţnosti pro realizaci intranetu, neméně však záleţí na jeho tvůrcích a uţivatelích, jestli se stane funkčním nástrojem komunikace uvnitř organizace.
44
SEZNAM POUŢITÉ LITERATURY [1] PETERKA, Jiří. Od Internetu k intranetu a extranetu. EPP (Ekonomický poradce podnikatele) [online]. 1997, 8/97, [cit. 2010-06-27]. Dostupný z WWW:
. [2] JAKUŠ, Dalibor; KRUPA, Martin; MRÁZ, Róbert. Ui42 [online]. [cit. 2010-06-27]. Intranet - case study. Dostupné z WWW: . [3] Přispěvatelé Wikipedie, Intranet [online], Wikipedie: Otevřená encyklopedie, c2010, Datum poslední revize 4. 06. 2010, 13:13 UTC, [citováno 27. 06. 2010] [4] Přispěvatelé Wikipedie, Systém pro správu obsahu [online], Wikipedie: Otevřená encyklopedie, c2010, Datum poslední revize 14. 06. 2010, 04:51 UTC, [citováno 27. 06. 2010] [5] Přispěvatelé Wikipedie, Open source software [online], Wikipedie: Otevřená encyklopedie, c2010, Datum poslední revize 3. 06. 2010, 16:36 UTC, [citováno 27. 06. 2010] [6] Redakční systémy : Vše o redakčních systémech [online]. 2009-02-01 [cit. 2010-0627]. Srovnání RS Joomla Drupal Wordpress. Dostupné z WWW: . [7] BERNARD, Bořek. Interval.cz [online]. 2006-06-28 [cit. 2010-06-27]. Drupal instalace a základní koncepty. Dostupné z WWW: . [8] Drupal.org : Community plumbing [online]. [cit. 2010-06-27]. Dostupné z WWW: . [9] VÍT, Svatopluk. Linuxexpres [online]. 2008-02-13 [cit. 2010-06-27]. Joomla! 1.0.x versus Joomla! 1.5.x. Dostupné z WWW: . [10] JoomlaPortal.cz [online]. [cit. 2010-06-27]. Dostupné z WWW: . [11] Joomla! [online]. 2009 [cit. 2010-06-27]. Dostupné z WWW: . [12] HULÁN, Radek. MyEgo [online]. 2007-07.29 [cit. 2010-06-27]. Instalace Apache, MySQL a PHP na Windows. Dostupné z WWW: . 45
[13] POLZER, Jan. 333 tipů a triků pro Drupal. Brno : Computer Press, 2010. 264 s. [14] Drupal.cz : Český portál o open source CMS Drupal [online]. [cit. 2010-06-27]. Dostupné z WWW: .
46
SEZNAM OBRÁZKŮ Obrázek č. 1: Diagram případů uţití školního intranetu Obrázek č. 2: Architektura CMS Drupal Obrázek č. 3: Administrační sekce CMS Drupal Obrázek č. 4: Administrační sekce CMS Joomla! Obrázek č. 5: Porovnání CMS Joomla! a Drupal na serveru CMS matrix Obrázek č. 6: Architektura webového řešení Obrázek č. 7: Informační stránka konfigurace PHP Obrázek č. 8: Webové rozhraní správy databáze phpMyAdmin
47