Samodzielne tworzenie podobnego oprogramowania, np. w PHP, wymaga jednak nie tylko wiedzy i umiejętności, ale także sporego nakładu czasu i pracy (patrz: $(LC115158: Portal w pięć minut)$). Na szczęście możemy skorzystać z gotowych narzędzi, tak zwanych systemów zarządzania treścią (CMS – Content Management System). Umożliwiają one tworzenie rozbudowanych serwisów o różnym stopniu skomplikowania bez umiejętności programowania czy znajomości HTML-a (choć obeznanie w PHP i HTML-u mogą się przydać w razie problemów lub chęci modyfikacji szablonów). Instalując system zarządzania treścią, musimy bowiem mieć świadomość, że jeśli rozbudujemy naszą witrynę, w pewnym momencie niezbędne okażą się umiejętności programowania w PHP i znajomość SQL-a. Przykładem takiej sytuacji jest choćby zorganizowanie płatności. Moduł sklepu znajdziemy w większości CMS-ów, ale umożliwienie użytkownikom witryny płacenia wymaga napisania kawałka kodu.
Rozwiązań jest wiele
Systemy portalowe umożliwiają kontrolowanie praktycznie wszystkich elementów serwisu internetowego, np. wyglądu, treści, a także uprawnień różnych osób (grafika, redaktora, autora). Do zarządzania CMS-ami wykorzystuje się zarówno aplikacje, jak i przeglądarki WWW. Wśród systemów portalowych znajdziemy “kombajny” przeznaczone dla dużych witryn (często komercyjne) oraz skromniejsze aplikacje (na licencji GNU GPL). Trzeba też pamiętać, że wiele firm webmasterskich pisze własne systemy zarządzania treścią uwzględniające specyficzne potrzeby klientów.
W tym artykule skupię się na popularnych produktach dostępnych za darmo (jeden system jest bezpłatny tylko dla projektów niekomercyjnych), wykorzystujących serwer WWW Apache, bazę danych MySQL oraz język skryptowy PHP. Oprogramowanie to stanowi wspólną platformę dla wielu CMS-ów i jest dostępne bezpłatnie zarówno dla systemów Unix/Linux, jak i Windows. Wybraliśmy 10 popularnych i ciekawych pakietów. Wszystkie mogą być z powodzeniem wykorzystane np. do tworzenia portalu tematycznego czy rozbudowanej witryny (np. sieci osiedlowej). Nie brak przykładów ich stosowania choćby w firmowych intranetach czy przy tworzeniu sklepów internetowych.
Gdzie to postawić?
Niezależnie od tego, na który system zarządzania treścią się zdecydujemy, musimy dysponować odpowiednim kontem WWW. O ile można znaleźć darmowe konto z obsługą PHP, to z bezpłatnym dostępem do MySQL-a będzie już kłopot. W komfortowej sytuacji są właściciele łączy stałych z własnym serwerem WWW lub osoby znające jakiegoś “admina”, zwłaszcza że w trakcie uruchamiania serwisu dodatkowy dostęp do powłoki systemowej (tzw. shella) bardzo się przydaje.
Wiele osób zapomina też, że potrzebne do uruchomienia oprogramowanie można zainstalować na własnym pececie. Takie rozwiązanie polecam szczególnie rozpoczynającym swoją przygodę z CMS-ami – wszystkie testy i eksperymenty o wiele łatwiej wykonuje się na własnej maszynie. Rzadko dostępne są konta WWW z preinstalowanym systemem CMS i zwykle wszystkie skrypty musimy umieścić na serwerze sami.
Pozory mylą
Wydaje się, że instalacja dowolnego systemu zarządzania treścią jest banalna. Wystarczy pobrać ze strony projektu archiwum, rozpakować je, pliki wgrać na serwer, a następnie uruchomić specjalną stronę PHP, za pomocą której skonfigurujemy CMS-a. W praktyce jednak może się okazać, że konieczna jest zmiana uprawnień do określonych plików i katalogów lub nawet modyfikacja nazw niektórych zbiorów! Ten ostatni problem może dotyczyć w szczególności przypadków, gdy dane rozpakowano w Windows, a następnie przegrano za pomocą klienta FTP na konto uniksowe. O wiele gorsza jest sytuacja, gdy na serwerze, na którym mamy konto WWW, brakuje pewnych bibliotek lub programów. Wówczas albo musimy poszukać innego miejsca na nasz serwis, albo prosić administratora o doinstalowanie potrzebnych komponentów. Dodatkowo może się okazać, że niektóre czynności (np. wgranie ostatecznego pliku konfiguracyjnego) będziemy zmuszeni wykonać ręcznie (z linii komend) z powodu np. zablokowania dostępu do komendy copy w interpreterze PHP.
Jak widać, problemów z instalacją może być wiele, dlatego dostęp do powłoki systemowej oraz znajomość podstaw PHP i HTML bywa w takich sytuacjach nieoceniona. Tym bardziej, że podczas testu zdarzyły się sytuacje, iż po zainstalowaniu systemu CMS zamiast panelu logowania otrzymywałem… pustą stronę WWW. Z pomocą w takich wypadkach przychodzą fora internetowe związane z danym projektem. Ostatecznym wyjściem jest po prostu instalacja innego CMS-a.
Z dziesięciu prezentowanych systemów najmniejszych kłopotów z instalacją nie przysporzyły: Geeklog, jPortal, Mambo, MD-Pro i PHP-Nuke. Najtrudniej było uruchomić eZ publish, a pozostałe pakiety wymagały uzupełnienia bibliotek lub drobnej rekonfiguracji systemu. W każdym wypadku warto bardzo dokładnie przeczytać instrukcję instalacji zawartą w pakiecie dystrybucyjnym lub w witrynie projektu albo zajrzeć na polskojęzyczne fora (patrz ramka: “Więcej informacji”). Na $(LC115618: Instalacja Mambo 4.5)$ prezentujemy sposób uruchomienia coraz popularniejszego w Polsce systemu Mambo.
Dane techniczne pakietów CMS | ||||||||||
eZ publish 3.4 | Geeklog 1.3.9 | jPortal 2.2.2 beta | Mambo 4.5 | MDPro 1.0.6 | PHP-Nuke 7.3 | phpWCMS 1.1RC4 | PostNuke 0.750 | Typo3 3.6.2 | Xoops 2.0.7 | |
Witryna projektu | http://ez.no/ | http://www.geeklog.net/ | http://www.jportal2.com/ | http://www.mamboserver.com/ | http://www.maxdev.com/ | http://phpnuke.org/ | http://www.phpwcms.de/ | http://www.postnuke.com/ | http://typo3.org/ | http://www.xoops.org/ |
Producent/autor lub zarządzający projektem | ez Systems, Norwegia | Dirk Haun, Niemcy | Websys.pl, Polska | Miro International | MaxDev | PHPNuke.org | Oliver Georgi | PostNuke.com | Kasper Skarhoj | Kazumi Ono, Goghs Cheng |
Licencja/cena | GNU GPL | GNU GPL | darmowy dla proj. niekomercyjn. | GNU GPL | GNU GPL | GNU GPL | GNU GPL | GNU GPL | GNU GPL | GNU GPL |
Obsługiwane serwery WWW | Apache | Apache | Apache | Apache, IIS | Apache, IIS | Apache, IIS | Apache, IIS | Apache, IIS | Apache, IIS | Apache, IIS2) |
Obsługiwane bazy danych | Postgres, MySQL | MySQL | MySQL | MySQL | MySQL, Oracle | MySQL, Postgres, Sybase, Interbase | MySQL | MySQL | MySQL | MySQL |
Język skryptowy | PHP | PHP | PHP | PHP | PHP | PHP | PHP | PHP | PHP | PHP |
Ocena CHIP-a | dobry | bardzo dobry | dobry | bardzo dobry | bardzo dobry | bardzo dobry | dostateczny | bardzo dobry | dobry | dobry |
Opcje podstawowe | ||||||||||
Instalacja systemu CMS | łatwa | bardzo łatwa | łatwa | łatwa | bardzo łatwa | bardzo łatwa | łatwa | łatwa | łatwa | łatwa |
Sprawdzanie wymaganych składników systemu | + | + | – | + | + | + | + | + | + | + |
Kreator instalacji (konfiguracji) | + | +/- | + | + | + | + | + | + | + | + |
Dokumentacja online (lub w pliku) | + | + | +/- | + | + | + | + | + | + | + |
Uprawnienia użytkowników (grup) | + | + | + | + | + | + | +/- | + | + | + |
Zatwierdzanie dokumentów do publikacji | + | + | dodatek | + | + | + | – | + | + | + |
Obsługa tematów (“skórek”) | + | + | + | + | + | + | – | + | + | + |
Polska wersja | +1) | + | + | + | + | + | – | + | + | + |
Zarządzanie blokami (elementami strony) | dostateczne | dobre | dobre | b. dobre | dobre | dobre | trudne | dobre | trudne | dobre |
Zarządzanie modułami systemu | dostateczne | dobre | brak | dobre | dobre | dobre | trudne | dobre | trudne | b. dobre |
Graficzny edytor tekstu | dodatek | dodatek | – | + | + | dodatek | + | + | + | + |
Moduły i bloki | ||||||||||
Notki (newsy) | + | – | + | + | + | + | – | + | – | + |
Artykuły/kategorie artykułów (sekcje) | +/+ | +/+ | +/+ | +/+ | +/+ | +/+ | +/-w | +/+ | +/- | +/+ |
Komentarze/punktowanie artykułów | +/- | +/dodatek | +/- | dodatek/- | +/+ | +/+ | -/- | +/+ | -/- | +/- |
Artykuły powiązane | – | – | – | – | + | + | – | + | – | – |
Najnowsze/najczęściej czytane | +/- | +/- | -/+ | +/+ | +/-/- | +/-/+ | -/- | +/-/- | -/- | +/+ |
Informacja, kto jest online/sentencje dnia | +/-/- | +/dodatek | dodatek/- | +/dodatek | +/+ | +/+ | +/- | +/+ | -/- | +/- |
Forum/czat | +/- | dodatek/dodatek | +/+/-4) | dodatek/dodatek | dodatek/dodatek | +/dodatek | -/- | dodatek/dodatek | dodatek/dodatek | +/dodatek |
Blog (strona użytkownika) | dodatek | dodatek | – | dodatek | dodatek | + | – | dodatek | dodatek | dodatek |
Pliki do pobrania/odnośniki | +/+ | dodatek/+ | +/+ | dodatek/+ | +/+ | +/+ | +/- | +/+ | dodatek/dodatek | +/+ |
Ankiety (sondy)/quizy i inne zabawy | +/dodatek | +/dodatek | +/dodatek | +/- | +/dodatek | +/dodatek | -/- | +/dodatek | dodatek/dodatek | +/dodatek |
Sklep | + | dodatek | –3) | dodatek | dodatek | dodatek | – | dodatek | dodatek | – |
Banery (reklama) | +/- | +/- | +/- | + | dodatek | + | – | + | dodatek | + |
Wyszukiwarka/zaawansowana wyszukiwarka | +/+ | +/+ | +/+/- | +/dodatek | +/+ | +/dodatek | -/- | +/+ | +/- | +/+ |
Formularz pocztowy | + | + | + | + | dodatek | + | + | + | + | + |
Kalendarium (wydarzenia) | + | + | dodatek | dodatek | dodatek | dodatek | – | + | dodatek | dodatek |
FAQ/Galeria zdjęć | +/+ | dodatek/dodatek | dodatek/dodatek | +/dodatek | +/dodatek | +/dodatek | -/- | +/dodatek | dodatek/+ | +/dodatek |
Księga gości | dodatek | dodatek | + | dodatek | dodatek | dodatek | + | dodatek | dodatek | dodatek |
Dodatkowe opcje | ||||||||||
Kopia zapasowa bazy danych | + | + | + | + | + | + | – | dodatek | + | dodatek |
Historia logowania | + | – | +/- | +/- | – | dodatek | – | dodatek | + | – |
Mailing do użytkowników | + | + | + | + | + | + | + | + | – | + |
Powiadomienie o problemach | + | – | – | – | – | – | – | – | +/- | – |
Blokowanie dostępu dla IP (domen) lub dostęp tylko dla IP | + | dodatek | + | – | – | dodatek | – | dodatek | – | – |
Czytnik RSS/publikacja wiadomości w RSS | +/- | +/+ | dodatek/- | +/+ | +/- | +/+ | -/- | +/+ | dodatek/- | +/dodatek |
Statystyki odwiedzin/wyszukiwania | -/- | dodatek/- | -/- | dodatek/- | +/- | +/- | -/- | +/- | -/- | dodatek/- |
Statystyki strony (Top 10) | – | + | dodatek | – | + | + | – | + | – | +/- |
Komentarz | Rozbudowany system o dużych możliwościach. Polecany przy tworzeniu witryn firmowych i korporacyjnych. Dobry instalator. Wskazana znajomość PHP i MySQL-a. | Prosta instalacja i konfiguracja. Wygodny dla początkujących. Dostępność wielu modułów rozszerzających, zarządzanie nimi wymaga jednak doświadczenia. | Prosty w instalacji i konfiguracji. Jest to polski projekt, nie ma zatem tak wielu poświęconych mu witryn, jak w przypadku zagranicznych CMS-ów. Raczej dla osób ze znajomością PHP. | System zyskujący coraz więcej zwolenników. Bardzo duża ilość modułów oraz ładnych graficznie “skórek”. Łatwa nawigacja w panelu administracyjnym. | Projekt podobny do Post- -Nuke’a. Łatwy w instalacji i użytkowaniu. Duże możliwości dodatkowe. Nadaje się do różnych zastosowań. | Jeden z najpopularniejszych systemów CMS. Dostępny w wielu wersjach językowych, w tym po polsku. Bardzo dużo dodatków oraz stron z pomocą. Uniwersalny. | Projekt o skromnych możliwościach, znajdujący się dopiero w fazie rozwoju. Mało dostępnych modułów. Raczej dla osób z doświadczeniem w CMS-ach. | Jedna z “odnóg” projektu PHP-Nuke. Stosunkowo łatwy w instalacji i konfiguracji. Dla tego systemu dostępnych jest wiele rozszerzeń. Przydatna znajomość PHP, MySQL-a i HTML-a. | Bardzo rozbudowany CMS. Wymaga sporej wiedzy i pracy. Duże możliwości zarządzania uprawnieniami użytkowników. Dla osób z doświadczeniem. | Interesujący system z wygodnym interfejsem administracyjnym. Łatwe zarządzanie modułami i zawartością witryny. Bogactwo funkcji odkryjemy dopiero po dłuższym czasie. |
+ – tak, – – nie, +/- – częściowo; dodatek – istnieje darmowy dodatek, funkcji nie ma w pakiecie dystrybucyjnym; 1) – tylko wersja 3.3; 2) – oficjalnie tylko dla Apache’a; 3) – tylko w wersji komercyjnej; 4) – klient serwerów PolChat | ||||||||||