W podręczniku tym omówione są najważniejsze zagadnienia związane z Drupalem. Ich lista znajduje się w menu poniżej.
Drupal to program, który umożliwia użytkownikowi lub grupie użytkowników łatwe publikowanie, zarządzanie i organizowanie zawartości strony. Dziesiątki tysięci ludzi wykorzystuje Drupala do prowadzenia swoich stron internetowych, pomiędzy którymi są
Drupal wyposażony jest w funkcje, które oferują
i wiele więcej.
Drupal jest oprogramowaniem o otwartym kodzie źródłowym, udostępnianym na zasadach licencji GPL. Jest tworzony przez tysięczną społeczność użytkowników i programistów. Drupala można za darmo pobrać i używać. Jeśli doceniasz to, co Drupal może dla Ciebie zrobić, prosimy Cię byś włączył się do pracy nad nim, aby stał się jeszcze lepszy i bardziej odpowiadał Twoim potrzebom.
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2005-2007 for the Polish translation by Arche Twist
Drupal, dodatkowe moduły oraz skórki dostępne są (na zasadach licencji GNU GPL, za darmo) na stronie projektu Drupal. Drupal, napisany w PHP i wykorzystujący bazę danych MySQL lub PostgreSQL, może zostać uruchomiony na wielu platformach, w tym na serwerze Apache i Microsoft IIS.
Drupal składa się z niewielkiego, ale oferującego duże możliwości "rdzenia", który może być w prosty sposób uzupełniony za pomocą dodatkowych modułów.
Drupal przedkłada dostarczenie wysokiej jakości, eleganckiego i dobrze udokumentowanego kodu nad multum niedopracowanych funkcji.
Drupal stara się wspierać cenione i dopiero rozwijające się standardy, między innymi XHTML i CSS.
By zapewnić świetną wydajność serwera, Drupal stawia na rozwiązania, które nie wykorzystują niepotrzebnie jego mocy (na przykład minimalizując liczbę zapytań do bazy danych).
Drupal opiera się na filozofii wspólnego tworzenia darmowego oprogramowania. Wydawany jest na licencji GPL i jego kod źródłowy jest dostępny publicznie. Drupal wspiera i korzysta z innych projektów o otwartym kodzie, na przykład z PHP, MySQL i PostreSQL.
Drupal chce zapewnić twórcom, administratorom oraz użytkownikom komfort w korzystaniu z niego.
Drupal wspiera otwarte rozwiązania i systemy współdzielenia informacji.
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist
Drupal jest internetowym systemem zarządzania treścią. Tekst i odsyłacze do wszelkiego rodzaju treści są przez Drupala zapisywane w bazie danych, pobierane i tworzone w sposób dynamiczny oraz prezentowane użytkownikom w odpowiedzi na ich żądania wysyłane za pośrednictwem przeglądarek internetowych.
Zawartość jest w Drupalu tworzona wewnątrz „segmentów”. Użytkownicy mogą dodawać „odpowiedzi” (komentarze) do segmentów typu „artykuł” (same odpowiedzi nie są segmentami). Zależnie od ustawień strony dodawanie segmentów i/lub odpowiedzi może nie być dostępne lub może wymagać każdorazowej akceptacji ze strony moderatora. Innymi rodzajami segmentów są na przykład wpisy w „blogach”, czyli internetowych dziennikach, osobistych stronach.
Domyślny layout Drupala (tzw. „skórka”) składa się z trzech kolumn. Środkowa zwana jest kolumną treści. Zwykle znajdują się w niej skróty opublikowanych tekstów lub same teksty, wyświetlane w całości po kliknięciu w ich tytuł.
Lewa i prawa kolumna to „paski boczne”. Paski te mogą wyświetlać „bloki” menu (menu to zbiory odnośników) lub powiązanych z aktualnie przeglądanym tekstem informacji. Bloki zawierają zazwyczaj odnośniki umożliwiające nawigację (poruszanie się) po stronie, czyli wyświetlanie innych segmentów, lub odnośniki do nowości pojawiających się na niej. Administrator, osoba zarządzająca stroną, może włączyć lub wyłączyć poszczególne bloki poprzez menu zarządzaj » bloki.
Zawartość bloków może się różnić w zależności od tego, jaką „rangę” posiada użytkownik. Rangi są ustalane przez osoby zarządzające stroną. Typowym ich zastosowaniem jest kontrolowanie uprawnień użytkowników, czyli tego, do jakich części strony będą posiadać dostęp i jakie działania będą mogli wykonywać.
Wracając do segmentów: mogą być one przyporządkowywane do kategorii, zwanych inaczej „słownikami”. Ta ostatnia nazwa wzięła się stąd, że w Drupalu system zarządzania kategoriami, ich elementami oraz powiązaniami między nimi zbudowany został na zasadzie tzw. taksonomii, w której podstawowym pojęciem jest właśnie „słownik”, a także jego elementy – „terminy”. Taksonomia jest w Drupalu wszechobecna. W oparciu o nią działa między innymi wbudowane forum, które jest po prostu zbiorem segmentów (w tym wypadku wątków) pogrupowanych ze względu na ich terminy, odzwierciedlane przez poszczególne fora, oraz słowniki, odzwierciedlane przez kategorie forów. Kategorie i ich elementy mogą być porządkowane w sposób herarchiczny. Niektóre z nich są wtedy nadrzędne wobec innych.
Drupalowa taksonomia może się wydawać pojęciem niejasnym, jednak zrozumienie funkcji jaką pełni w Drupalu jest bardzo pomocne. Mówiąc prościej, taksonomia służy do grupowania dodawanych na stronę tekstów (lub innych elementów), tak by potem użytkownicy mogli przeglądać powiązane ze sobą treści.
Drupala można wzbogacać o nowe funkcje za pomocą „modułów”. Cały Drupal jest złożony z modułów. Niektóre z nich są dostępne od razu po instalacji, a inne trzeba dodatkowo pobrać. Po wysłaniu katalogu z nowym modułem dodatkowym na serwer, administrator może go włączyć poprzez stronę zarządzaj » moduły. Po aktywowaniu modułu, pojawić się mogą nowe bloki czy rodzaje segmentów.
Z Drupalem związanych jest wiele specyficznych słów i terminów, których zrozumienie pomoże Ci w korzystaniu z niego oraz podczas poszukiwania rozwiązań ewentualnych problemów.
<hr />
Część powyższego tekstu stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.
© Copyright 2000–2007 by the individual contributors
© Copyright 2005–2007 for the Polish translation by Arche Twist
Poniżej znajduje się objaśnienie najważniejszych terminów związanych z Drupalem.
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2005-2007 for the Polish translation by Arche Twist
node/3
taxonomy/term/6
flexinode/7
user/login (znajomość ścieżki do tej strony jest bardzo przydatna, jeśli przypadkiem wyłączysz blok logowania)
By sprawdzić, jaki adres posiada dana strona, przejdź do działu zarządzania i dalej na podstronę zawartość. Ukaże Ci się lista wszystkich stron, które stworzyłeś. Najedź kursorem myszy na jeden z tytułów, a zobaczysz coś takiego:
http://twojadomena.pl/?q=node/54
Ostatnia część adresu, znajdująca się po znakach /?q=, to ścieżka do segmentu - w tym przypadku node/54.
By poznać więcej ścieżek do podstron swojej witryny, obserwuj uważnie pasek stanu swojej przeglądarki, kiedy kursor znajduje się nad jednym z odnośników.
Ścieżki do stron terminów taksonomii możesz poznać przechodząc do działu zarządzania, a potem na podstronę kategorie. W tym celu najedź kursorem myszy nad tekst edytuj termin, znajdujący się przy interesującym Cię terminie. Ścieżka będzie wyglądać tak:
taxonomy/term/6
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist
W menu poniżej znajdują się artykuły dotyczące instalacji Drupala. Omówione zostały wymagania stawiane serwerowi oraz przebieg instalacji rdzenia Drupala, ewentualnej jego aktualizacji, a także instalacja dodatkowych modułów i skórek.
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist
Przed rozpoczęciem właściwej instalacji Drupala należy najpierw przygotować bazę danych. Można ją utworzyć na przykład za pomocą panelu zarządzania witryną, który oferuje firma hostingowa (słowa-klucze: baza danych
, database
, MySQL
, ewentualnie phpMyAdmin
). Do bazy danych trzeba również przypisać konto użytkownika i ustalić dla niego hasło.
W trakcie tworzenia bazy warto zanotować wprowadzane dane, ponieważ będzie je jeszcze trzeba podać w trakcie instalacji Drupala.
Kolejnym krokiem jest pobranie Drupala.
Pobraną paczkę należy rozpakować (użytkownicy Linuksa sami wiedzą, że tar -zxvf, a użytkownikom Windows polecić można darmowy dekompresor 7-Zip), a jej zawartość wysłać na serwer FTP, w miejsce dostępne dla odwiedzających (np. podkatalog public_html).
Skrypt instalacyjny ustali podstawowy adres URL witryny, połączy się z bazą danych i utworzy konieczne tabele.
By go uruchomić, wystarczy przejść pod adres witryny. Zostanie wyświetlona strona Database configuration
(Konfiguracja bazy danych). Do pola oznaczonego Database name
należy wpisać nazwę stworzonej w punkcie pierwszym bazy danych, do Database username
– nazwę konta użytkownika bazy, a do Database password
jego hasło.
W pewnych wypadkach należy również podać adres serwera bazy danych – służy do tego pole Database host
znajdujące się w grupie ustawień Advanced options
.
Ustawienia należy potwierdzić przyciskiem Save configuration
.
Skrypt spróbuje ustawić plikowi settings.php atrybut „tylko do odczytu” (plik domyślnie znajduje się w katalogu sites/default). Jeśli będziesz w przyszłości dokonywać w nim jakichś zmian, pamiętaj by – ze względów bezpieczeństwa – po ich zakończeniu znów ustawić ten atrybut.
Jeśli wszystko przebiegło pomyślnie, będzie można utworzyć pierwsze konto użytkownika, posiadające całkowitą kontrolę nad witryną. W Drupalu 5 służy do tego odnośnik create the first account
(utwórz pierwsze konto), znajdujący się na stronie powitalnej, do której można przejść po ukończeniu instalacji. Po zalogowaniu się jako administrator można też dokończyć konfigurację witryny.
W Drupalu 6 tworzenie pierwszego konta użytkownika jest częścią procesu instalacji i nie wymaga żadnych dodatkowych zabiegów.
By zainstalować Drupala potrzebujesz serwera, PHP4 (4.3.3 lub nowszy) lub PHP5 oraz MySQL lub PostgreSQL.
UWAGA: zaleca się korzystanie z serwera Apache i bazy danych MySQL; inne "zestawy" serwerów i baz danych, jak na przykład IIS wraz z PostgreSQL, są obsługiwane, jednak nie tak dobrze wypróbowane.
Najświeższą wersję Drupala znajdziesz na drupal.org. Pliki udostępniane są w archiwum .tar.gz, które można rozpakować korzystając z większości narzędzi dekompresujących. Komendy dla konsoli środowiska uniksowego wyglądają tak:
wget http://drupal.org/files/projects/drupal-x.x.x.tar.gz
tar -zxvf drupal-x.x.x.tar.gz
Ich uruchomienie spowoduje utworzenie katalogu Drupala o nazwie drupal-x.x.x/, zawierającego wszystkie pliki i katalogi Drupala. Przenieś zawartość tego katalogu do głównego katalogu Twojego serwera stron internetowych lub do katalogu, którego zawartość jest udostępniana odwiedzającym Twoją stronę użytkownikom:
mv drupal-x.x.x/* drupal-x.x.x/.htaccess /var/www/html
Możesz pominąć tę część instalacji, jeśl posiadasz już odpowiednią bazę danych (np. utworzoną przez firmę, w której kupiłeś konto). Jeśli swoją bazę danych konfigurujesz poprzez panel kontrolny dostępny na stronie internetowej, powinieneś zajrzeć do dokumentacji tego panelu, ponieważ poniższa instrukcja pokazuje jedynie, w jaki sposób utworzyć bazę danych z poziomu wiersza poleceń.
Instrukcja dotyczy bazy MySQL. Jeśli korzystasz z innej bazy danych, przeglądnij jej dokumentację. W poniższych przykładach dba_user oznacza przykładowego użytkownika bazy MySQL, który posiada uprawnienia CREATE i GRANT. Zamiast dba_user wpisz nazwę użytkownika odpowiedniego dla Twojej bazy danych.
Po pierwsze musisz utworzyć nową bazę dla swojej strony (drupal w tym przykładzie to nazwa nowej bazy):
mysqladmin -u dba_user -p create drupal
MySQL zapyta o hasło użytkownika dba_user i utworzy podstawowe pliki. Następnie musisz zalogować się do bazy i ustalić uprawnienia dostępu do niej:
mysql -u dba_user -p
Zostaniesz ponownie poproszony o podanie hasła. Potem w wierszu poleceń MySQL wpisz następującą komendę:
GRANT ALL PRIVILEGES ON drupal.* TO nikt@localhost IDENTIFIED BY 'haslo';
gdzie:
Jeśli wszystko się powiedzie, MySQL odpowie Ci:
Query OK, 0 rows affected
By aktywować nowe uprawnienia musisz wprowadzić komendę:
flush privileges;
Następnie wpisz \q by wyjść z MySQL.
Kiedy już masz bazę danych musisz wprowadzić do niej konieczne tabele.
Jeśli korzystasz z panelu kontrolnego umieszczonego na stronie internetowej, powinieneś móc wysłać plik database.mysql z katalogu database Drupala i wykonać komendy SQL znajdujące się w tym pliku.
Jeśli natomiast masz zamiar skorzystać z linii poleceń, skorzystaj (ponownie zamieniając nikt i drupal na nazwy swojego użytkownika i bazy danych) z polecenia:
mysql -u nikt -p drupal < database/database.4.0.mysql dla MySQL w wersji 4.0, lub
mysql -u nikt -p drupal < database/database.4.1.mysql dla MySQL w wersji 4.1.
Domyślna konfiguracja Drupala znajduje się w pliku sites/default/settings.php, wewnątrz katalogu Drupala. Zanim będziesz mógł korzystać z Drupala, musisz wprowadzić adres swojej bazy danych i podstawowy adres URL swojej strony. Otwórz plik konfiguracyjny i zmień linię zawierającą wyrażenie $db_url tak, by wartość tam podana odpowiadała Twojej bazie danych, którą stworzyliśmy w poprzednim kroku:
$amp;db_url = "mysql://username:password@localhost/database";
gdzie username to nazwa użytkownika bazy danych, password to jego hasło, localhost - nazwa hosta (zwykle właśnie taka jest odpowiednia), a database - nazwa bazy danych.
Następnie ustaw $base_url, tak by odpowiadał adresowi Twojej strony:
&base_url = "http://www.przykladowy_adres.com";
Pojedyncza instalacja Drupala może obsługiwać kilka różnych stron, z osobną konfiguracją dla każdej z nich. Jeśli nie zamierzasz korzystać z takiego rozwiązania, pomiń tę część instrukcji.
Dodatkowe konfiguracje stron tworzone są w podkatalogach katalogu sites. Każdy podkatalog musi posiadać plik settings.php, który zawiera ustawienia strony. Najprostszym sposobem utworzenia dodatkowych stron jest skopiowanie katalogu default i odpowiednie zmodyfikowanie ustawień w pliku settings.php. Nazwa nowego katalogu powinna odpowiadać adresowi nowej strony. Konfiguracja strony www.hajdananiedzwiedzia.pl znajdowałaby się więc w pliku sites/hajdananiedzwiedzia.pl/settings.php (zwróć uwagę, że pominąć należy "www.", jeśli tylko użytkownicy mogą dostać się na Twoją stronę poprzez http://hajdananiedzwiedzia.pl/).
Owe dodatkowe strony nie muszą posiadać własnych domen. Możesz wykorzystać subdomeny lub podkatalogi w swojej starej domenie. Dla przykładu, zarówno hajdananiedziwedzia.pl, sub.hajdananiedziwedzia.pl, jak i sub.hajdananiedziwedzia.pl/strona3 mogą być niezależnymi stronami obsługiwanymi przez Drupala. W katalogu Drupala powinny się w takim przypadku znaleźć następujące pliki konfiguracyjne:
sites/default/settings.php
sites/hajdananiedziwedzia.pl/settings.php
sites/sub.hajdananiedziwedzia.pl/settings.php
sites/sub.hajdananiedziwedzia.pl.strona3/settings.php
Kiedy Drupal będzie starał się odnaleźć odpowiedni dla strony plik konfiguracyjny (na przykład plik konfiguracyjny strony www.hajdananiedziwedzia.pl.com/strona3), poszuka go w następujących miejscach (i w następującej kolejności):
sites/www.sub.hajdananiedziwedzia.pl.strona3/settings.php
sites/sub.hajdananiedziwedzia.pl.strona3/settings.php
sites/hajdananiedziwedzia.pl.strona3/settings.php
sites/www.sub.hajdananiedziwedzia.pl/settings.php
sites/sub.hajdananiedziwedzia.pl/settings.php
sites/hajdananiedziwedzia.pl/settings.php
sites/default/settings.php
Jeśli instalujesz stronę, korzystając z niestandardowego portu, pamiętaj że dwukropkowi odpowiada kropka. Na przykład: strona http://www.drupal.org:8080/mysite/test/ może być wywołana za pomocą sites/www.drupal.org.8080.mysite.test/.
Każda dodatkowa strona może posiadać swoje własne moduły i skórki, które uzupełniać będą te standardowe. By skorzystać z takich dodatkowych modułów lub skórek, po prostu utwórz katalog modules lub themes w katalogu zawierającym konfigurację strony. Na przykład, jeśli sub.hajdananiedziwedzia.pl ma dysponować własnymi skórkami i modułami niedostępnymi dla innych stron, to pliki powinny być umieszczone w ten sposób:
UWAGA: By uzyskać więcej informacji na temat wirtualnych hostów lub konfiguracji Drupala, zaglądnij do Podręcznika Drupala (Drupal Handbook) na drupal.org.
Powinieneś zastanowić się nad stworzeniem w głównym katalogu Drupala podkatalogu files, który zawierać może logo strony, portrety użytkowników, a także inne pliki graficzne i inne związane z Twoją stroną. Proces Drupala na serwerze musi posiadać uprawnienia do odczytu i zapisu do tego podkatalogu. Nazwę katalogu zmienić możesz w menu zarządzaj > ustawienia > Ustawienia systemu plików.
Możesz już teraz uruchomić swoją przeglądarkę internetową i wejść na swoją nową stronę.
Następnie utwórz konto użytkownika i zaloguj się. Pierwsze utworzone na stronie konto automatycznie otrzyma uprawnienia administratora strony (uprawnienia do zarządzania), dające pełną nad nią kontrolę.
Wiele modułów Drupala (na przykład wyszukiwarka) opiera swoje działanie na okresowo wykonywanych zdaniach, które muszą być uruchamiane przez demona cron. By aktywować te zadania, musisz nakazać demonowi cron wywoływanie strony http://www.tutaj_adres_twojej_strony.pl/cron.php -- spowoduje to przekazanie kontroli modułom, które zdecydują jakie kolejne zadania mają zostać wykonane.
Większość systemów obsługuje narzędzie crontab, które umożliwia planowanie wykonywania takich zadań. Poniższa, przykładowa, linijka dla konfiguracji crontaba wywołuje stronę cron.php strony hajdananiedziwedzia.pl co godzinę:
0 * * * * wget -O - -q http://www.hajdananiedziwedzia.pl/cron.php
Więcej informacji na temat skryptów demona cron dostępnych jest w części poświęconej zarządzaniu stroną Podręcznika Drupala (Drupal Handbook) na drupal.org. Przykładowe skrypty można znaleźć w podkatalogu scripts/ wewnątrz głównego katalogu Twojego Drupala.
Po zainstalowaniu Drupala, Twoja nowa strona wykorzystuje bardzo podstawową konfigurację, z jedynie kilkoma modułami, jedną skórką i brakiem uprawnień dla użytkowników.
By włączyć i skonfigurować nowe usługi, przejdź do panelu zarządzania stroną. Możesz na przykład zacząć od skonfigurowania ogólnych ustawień strony, poprzez zarządzaj >
ustawienia. Moduły włączyć możesz poprzez zarządzaj > moduły. Uprawnienia użytkowników dostosujesz poprzez zarządzaj > użytkownicy > konfiguruj > uprawnienia.
By dowiedzieć się więcej na temat różnych możliwości konfiguracji, przeczytaj opisy znajdujące się obok danych ustawień i przeglądnij dołączoną do Drupala dokumentację (zarządzaj > pomoc).
Dodatkowe moduły, stworzone przez członków społeczności Drupala, dostępne są na drupal.org.
Skoro już Twoja strona działa, będziesz zapewne chciał dostosować jej wygląd do swoich potrzeb. Do Drupala dołączonych jest kilka przykładowych skórek, a więcej znajdziesz na drupal.org.
Sposób dostosowywania skórki zależy od tego jaki "silnik" wykorzystuje, na jakim się opiera. Ogólnie rzecz biorąc każda skóka zawiera plik PHP nazwaskorki.theme, w którym zdefiniowana jest funkcja header(), i którą możesz zmienić by skórka korzystała z Twojego własnego logo.
Większość skórek zawiera także arkusze stylów CSS, zmieniające kolory i wygląd skórki; sprawdź czy w podkatalogu themes/ nie znajduje się plik README, wyjaśniający zastosowane w skórce rozwiązania.
sites/default/settings.php.ID równym 1.update.php wchodzą na stronę http://www.tutaj_adres_Twojej_strony.pl/update.php.By uzyskać więcej informacji na temat konkretnych problemów związanych z konfiguracją, instalacją lub konfiguracją Drupala, sięgnij po Podręcznik Drupala (Drupal Handbook) ze strony drupal.org. Możesz także zajrzeć na forum Drupala lub do list wysyłkowych (mailing lists).
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist
Co kilka miesięcy wydawana jest nowa „duża” wersja Drupala (pomniejsze częściej). Zaleca się regularne dokonywanie aktualizacji, co pomoże uniknąć potencjalnych problemów związanych z lukami bezpieczeństwa i zapewni dostęp do nowych funkcji.
Uwaga. Przed dokonaniem aktualizacji do nowej, „dużej” wersji Drupala (np. 5, 6 czy 7), należy sprawdzić, czy zainstalowane moduły dodatkowe oraz skórki są dostępne w wersjach kompatybilnych z nowym Drupalem (czy zostały zaktualizowane).
Aktualizację witryny warto poprzedzić zalogowaniem się do konta administratora (pierwszego konta użytkownika) oraz aktywacją trybu przerwy technicznej
: Zarządzaj
→ Konfiguracja witryny
→ Przerwa techniczna
.
Następnie należy wyłączyć wszystkie moduły dodatkowe, czyli takie, które nie są standardowymi składnikami Drupala, a także zmienić skórkę witryny na domyślną (Garland
w Drupalu 5 i 6): Zarządzaj
→ Budowa witryny
→ Moduły
oraz Skórki
.
Przed przystąpieniem do aktualizacji należy utworzyć zapasowe kopie istniejących plików i bazy danych. Aktualizacja bazy danych nie zawsze jest konieczna, mimo to i w takich wypadkach nie zaszkodzi skopiować ją w bezpieczne miejsce.
Do pobrania plików istniejącej instalacji Drupala można wykorzystać klienta FTP lub konsolę serwera. Następnie należy skopiować zawartość bazy danych przy pomocy narzędzia phpMyAdmin lub linii poleceń serwera MySQL.
Przed wykonaniem kolejnych czynności najlepiej jest wyłączyć wszelkie zadania cron.
Następnie należy przenieść się do katalogu instalacji Drupala i pobrać specjalny skrypt, który utworzy kopię zapasową bazy danych w pliku backup.sql:
wget -O drupalsqldump.sh "http://cvs.drupal.org/viewvc.py/drupal/contributions/sandbox/drumm/tools/drupalsqldump.sh?view=co"
chmod +x drupalsqldump.sh
Poniższa komenda spowoduje sprawdzenie ustawień w pliku settings.php, automatyczne połączenie z bazą danych i utworzenie jej kopii:
./drupalsqldump.sh sites/default/settings.php > backup/backup.sql
Paczki z Drupalem znajdują się w dziale Downloads
witryny oficjalnej. Za pomocą klienta FTP należy przenieść stare pliki do osobnego katalogu, np. o nazwie kopia. Najlepiej jest wysyłać pliki nowego Drupala do katalogu, w którym brak pozostałości po starym.
Następnie należy przystąpić do wysyłki nowych plików, rozpakowanych z pobranej wcześniej paczki, a po zakończeniu tego procesu – upewnić się, że możliwy jest zapis do podkatalogu files
.
Na serwer trzeba także wysłać pliki wszelkich modułów dodatkowych, które mają działać w witrynie (lista dostępnych modułów). Muszą być one kompatybilne z nowym Drupalem. Podobnie należy postąpić z niestandardowymi skórkami.
Następujące pliki muszą zostać skopiowane z katalogu z kopią zapasową do katalogu instalacji Drupala:
.htaccesssites/default/settings.phpfilesPrzed wywołaniem skryptu należy się zalogować jako użytkownik nr 1, czyli administrator witryny, a jeśli jest to niemożliwe – wyedytować skrypt update.php, zmieniając ustawienie $access_check z TRUE na FALSE. Po dokonaniu aktualizacji bazy danych trzeba przywrócić poprzednią wartość! W przeciwnym razie każdy będzie w stanie uruchomiać skrypt aktualizujący.
Końcowym krokiem jest oczywiście uruchomienie skryptu, co czyni się za pomocą przeglądarki, przechodząc pod adres strony uzupełniony nazwą skryptu: http://example.com/update.php. Skrypt uruchama się jedynie raz. Gdy zakończy on pracę, warto sprawdzić, czy nie pojawiły się komunikaty o wystąpieniu błędów.
Tym jakże romantycznym hasłem autor chciał przekazać, że witryna może wymagać wykonania jakichś dodatkowych czynności, zależnie od jej konfiguracji. Większość problemów związanych z aktualizacją wynika stąd, że osoby je przeprowadzające nie pamiętają o specyficzności konfiguracji swoich witryn.
Na stronach Zarządzaj
→ Budowa witryny
→ Moduły
i Skórki
należy włączyć wszelkie potrzebne moduły i skórki, a na Zarządzaj
→ Zarządzanie użytkownikami
→ Uprawnienia
(lub Kontrola dostępu
) nadać użytkownikom odpowiednie uprawnienia.
Ostatnim krokiem jest usunięcie bądź przeniesienie w inne miejsce plików install.php, CHANGELOG.txt, INSTALL.txt, INSTALL.mysql.txt, INSTALL.pgsql.txt, LICENSE.txt, MAINTAINERS.txt oraz UPGRADE.txt, znajdujących się w głównym katalogu Drupala.
Warto przeprowadzić test funkcjonowania zaktualizowanego Drupala, odwiedzając najpopularniejsze wśród odwiedzających strony. Które? Można się tego dowiedzieć obserwując dzienniki zdarzeń w dziale zarządzania.
Potem można już odwiedzić witrynę i wyłączyć tryb przerwy technicznej, udostępniając ją odwiedzającym.
<hr />
Fragmenty tego tekstu są tłumaczeniem stron Drupal handbook, który udostępniany jest na zasadach licencji Creative Commons Attribution-ShareAlike 2.0.
© Copyright 2000–2007 by the individual contributors (Drupal.org)
© Copyright 2006–2008 Arche Twist
Artykuł został zaktualizowany 5 stycznia 2007 roku. Dodano opis skryptu ułatwiającego łatanie katalogów.
Nawet złowrogi Sith, przebywający na co dzień po ciemnej stronie mocy, musi sobie coś czasem załatać. Inaczej mówiąc: i użytkownik Windows musi (bądź chce) mieć czasem do czynienia z łatami (*.patch).
Korzystając z jednego z poniższych sposobów można wytypować pliki, które wymagają wysłania na serwer, a te, które nie uległy zmianie od ostatniej aktualizacji, pozostawić w spokoju.

Dobrym darmowym windowsowym narzędziem do porównywania katalogów jest WinMerge.
Katalogi (lub nawet dwa archiwa .tar.gz) wybiera się za pomocą przycisku Porównaj. Na czerwono oznaczone zostaną pliki różniące się między sobą zawartością lub nieistniejące w jednym z katalogów.
By nie musieć wchodzić do każdego z podkatalogów po kolei, warto zaznaczyć opcję Domyślnie uwzględnij podkatalogi
.
Za pomocą wszechstronnego edytora Vim, ze wsparciem DiffUtils w wersji dla Unix/Linux lub dla Windows, a także wtyczki DirDiff, możemy porównać zawartość dwu katalogów.
Ładne pokolorowanie różnic zapewni natomiast zestaw kolorów Twist.
Do porównania katalogów, po uprzednim zainstalowaniu wszystkich potrzebnych rzeczy, używamy poniższej komendy (którą wydajemy w gVimie):
:DirDiff <katalog A> <katalog B>
Okno gVima zostanie podzielone na 3 części – dwie pierwsze będą zajmować podglądy różnic w plikach, a w trzeciej znajdować się będzie lista plików, które okażą się nie być identycznymi. Umieszczając kursor nad linijką odnoszącą się do dwu takich plików i wciskając klawisz o, można otworzyć je na podglądzie.
Łaty zamieszczane na drupal.org tworzone są programem diff i zapisywane w tzw. „zunifikowanym formacie”. Podobne łaty możemy także uzyskać, tworząc je w programie WinMerge
, korzystając z opisu znajdującego się pod koniec artykułu.
Patch Wizard
to skrypt PHP, ułatwiający łatanie plików. Umieściwszy go na serwerze, w miejscu dostępnym z przeglądarki internetowej, możemy załatać cały wybrany katalog wprowadzoną w odpowiednim polu łatą (należy wkleić zawartość pliku z łatą – *.patch).

Patch Wizard
Strategia jest prosta. Gdy pojawia się nowa wersja Drupala, porównuję jej archiwum z zainstalowaną na serwerze, za pomocą WinMerge (widok z opcją Uwzględnij podkatalogi
). WinMerge odfiltrowuje pliki, które wymagają szczególnego potraktowania (zmienione przeze mnie), a całą resztę zaznaczam i korzystam z Narzędzia
→ Generuj patch
, gdzie wybieram opcję otwarcia w zewnętrznym edytorze. Kopiuję łatę i wklejam do przeznaczonego dla niej pola udostępnianego przez skrypt Patch Wizard. Odpalam i Drupal załatany.
Podobnie postąpić można z gotowymi łatami, dostępnymi na drupal.org.
Skrypt umożliwia przekazywanie wartości ustawień poprzez URL (np. ?dir=/home/example w adresie), dzięki czemu mogę skorzystać z zakładek, które „pamiętają” za mnie większość ustawień, a moja rola sprowadza się do wciśnięcia przycisku. Jest to pomocne zwłaszcza, jeśli konieczne jest załatanie kilku witryn.
Dostępne argumenty URL to:
dir – katalog do załataniap – P level
unified – jeśli równa się 0, tzw. zunifikowanyformat nie jest wykorzystywany
Cały URL wyglądać więc będzie mniej więcej tak:
http://example.com/patch-wizard.php?dir=/home/example/example.com&p=0
By coś z pomocą Vima załatać, potrzebujemy programu Patch w wersji dla Windows lub dla Unix/Linux.
Przechodzimy do gVima i otwieramy w nim plik, który zamierzamy załatać. Następnie korzystamy z funkcji Podziel łatane przez (nie, nie mam pojęcia, kto ją tak przetłumaczył) i wskazujemy pobrany z drupal.org (albo innej strony) plik z roszerzeniem patch. Wyplute zostanie okienko linii poleceń z komunikatami programu Patch, które zamykamy wciskając Enter. O przebiegu łatania powiadomi nas też Vim – ponownie wciskamy Enter.

Po lewej stronie okna gVima widoczny będzie nowy, jeszcze nie zapisany, plik będący wynikiem łatania pliku znajdującego się po stronie prawej. Sprawdzamy czy wszystko wygląda w porządku i – upewniwszy się, że kursor znajduje się w lewej części okna – zapisujemy plik, usuwając końcówkę .new. Można go teraz wysłać na serwer.
Tworzenie łat ma sens z kilku powodów. Jeśli chcemy udostępnić nasze modyfikacje, oszczędzamy miejsce na serwerze i czas ewentualnych zainteresowanych. Poza tym przydają się w przypadku modyfikacji często aktualizowanych plików, bo nie musimy sami od nowa grzebać w plikach, które zmieniła centrala.
Otwieramy do porównania oryginalny plik i jego kopię zmodyfikowaną przez nas oraz wchodzimy do menu Narzędzia → Generuj patch. W nowootwartm okienku Plikiem 1 będzie ten otwarty w lewej części okna, a Plikiem 2 – otwarty w prawej. Jeśli nie odpowiada nam ta kolejność, możemy kliknąć przycisk Zamień.
W polu Wynik wpisujemy ścieżkę i nazwę pliku oczekiwanej łatki (lub klikamy sąsiedni przycisk Przeglądaj). Z grupy opcji o nazwie Format, przy Styl wybieramy Zunifikowany. Przy Kontekst wybrać możemy ile linii sąsiadujących z linią zawierającą zmianę będzie umieszczanych w łacie – im więcej, tym mniejsze ryzyko późniejszego wprowadzenia zmiany w złym miejscu, ale i większe prawdopodobieństwo niedopasowania łaty do pliku, który bardzo się zmienił od czasu jej utworzenia.
Wydajemy polecenie
diff -u plik1 plik2
W wypadku korzystania z Patch bądź DiffUtils pod Windows, konieczne jest dopisanie ścieżek do tych programów do listy zmiennych środowiskowych. Czynimy to poprzez Mój komputer → Właściwości → karta Zaawansowane → Zmienne środowiskowe → Zmienne systemowe. Tam, na liście odszukujemy zmienną Path i na końcu zawartości pola Wartość dodajemy:
;C:\Program Files\GNU\Patch\bin;C:\Program Files\GNU\DiffUtils\binPowyższe ścieżki są domyślnymi – jeśli programy zainstalowane są w niestandardowych katalogach, trzeba je oczywiście wskazać.
Tytuł tego artykułu to nie propozycja nowego hasła reklamowego, a skrótowy opis funkcji multisite, o której wspomina się w dokumentacji dołączonej do Drupala, a dającej możliwość wykorzystania jednej instalacji Drupala do budowy wielu witryn.
Poniższy opis zakłada, że korzystasz z Drupala w wersji 5.0 lub wyższej!
Drupal przechowuje informacje o obsługiwanych witrynach w podkatalogu sites. Na początku znajduje się tam kolejny podkatalog, default, wraz z plikiem settings.php. W pliku tym instalator, bądź Ty sam, umieścił konfigurację witryny, między innymi informacje o bazie danych i adresie.
Każda dodatkowa drupalowa witryna powinna mieć własny podkatalog w sites, z własnym plikiem konfiguracyjnym settings.php. Nazwa podkatalogu powinna odpowiadać adresowi witryny. Rozważmy trzy możliwości:
nazwa katalogu: przykładowy-adres.pl.strona
nazwa katalogu: strona.przykładowy-adres.pl
nazwa katalogu: przykładowy-adres.pl
Musisz podjąć decyzję, czy chcesz umieścić tabele bazy danych nowej strony wewnątrz obecnej bazy, czy w nowej bazie:
Jeśli zamierzasz stworzyć zupełnie niezależną witrynę, pomiń ten punkt i wszystkie kolejne dotyczące współdzielenia tabel.
Jeśli natomiast chciałbyś zapewnić użytkownikom możliwość logowania się do kilku Twoich witryn za pomocą jednego loginu i hasła lub uchronić się od konieczności instalowania tłumaczenia osobno dla każdej witryny, powinieneś rozważyć współdzielenie niektórych tabel między witrynami.
Załóżmy, że Twoja nowa strona będzie się znajdować pod adresem strona.pl. Wyślij więc na serwer, do utworzonego przez Ciebie podkatalogu sites/strona.pl, plik settings.php z paczki Drupala. Następnie nadaj innym, już na serwerze, uprawnienia do zapisu do niego (chmod 666).
Teraz musisz spowodować by podkatalog, subdomena lub nowa domena kierowały do plików starej strony.
Uwaga, w większości przypadków przy tworzeniu subdomeny tworzony jest także podkatalog o odpowiadającej jej nazwie. Należy go usunąć!
To bardzo istotny punkt. Do jego realizacji potrzebujesz dostępu do linii poleceń serwera lub demona cron lub tworzenia wskaźników domen z opcją "alias".
W pierwszym i drugim przypadku chodzi o wydanie polecenia:
ln -s /katalog/głównej/witryny /katalog/nowej/witryny
Katalog nowej strony tak naprawdę nie istnieje fizycznie na serwerze, a zamiast niego tworzymy tak zwane dowiązanie symboliczne. Ścieżki muszą być pełne, to znaczy, rozpoczynać się muszą od głównego katalogu serwera (np. /home/użytkownik/public_html/strona).
W trzecim przypadku wykorzystujemy dostępną w panelu zarządzania stroną opcję "wskaźników domen" i tworzymy nową domenę lub subdomenę wskazującą na starą.
Zanim alias zacznie działać, może upłynąć trochę czasu.
Jeśli adres Twojej nowej witryny jest już dostępny, uruchom skrypt instalacyjny, przechodząc na stronę strona.pl/install.php (adres przykładowy). Wprowadź potrzebne dane, takie jak nazwa i hasło użytkownika bazy danych, nazwa samej bazy, itd.
Jeśli nowa witryna ma korzystać z tej samej bazy danych, co poprzednia, ustal prefiks dla tabel bazy, pod Advanced options
, w polu Table prefix
.
Instalator utworzy tabele w bazie danych i wstępnie skonfiguruje witrynę. Jeżeli nie masz zamiaru współdzielić żadnych z nich, jest to już dla Ciebie koniec instalacji. Gratulacje! W przeciwnym wypadku wykonaj jeszcze czynności opisane w kolejnym punkcie.
Każda z tabel bazy danych Drupala odpowiada za inną funkcję. To, które tabele Drupal ma współdzielić pomiędzy witrynami, ustala się w pliku settings.php nowoutworzonej witryny. Pobierz go z odpowiedniego dla Twojej nowej witryny podkatalogu na serwerze i otwórz. Instalator zapisał tam dane, więc edycja innego pliku byłaby błędem.
Zwróć uwagę na zmienną $db_prefix. To jej wartość będziesz musiał zmienić, zależnie od tego, które z tabel chcesz współdzielić, oraz tego, czy będziesz korzystać z jednej bazy danych z różnymi prefiksami tabel, czy większej ilości baz.
'default' => 'prefiks_''default' => 'baza.'Przykładowa konfiguracja dla witryn korzystających z jednej bazy, umożliwiająca pojedynczą rejestrację użytkowników:
$db_prefix = array(
'default' => 'prefiks_',
'authmap' => '',
'permission' => '',
'profile_fields' => '',
'profile_values' => '',
'role' => '',
'sequences' => '',
'sessions' => '',
'users' => '',
'users_roles' => ''
);
Wyróżnione tabele będą współdzielone, natomiast w przypadku innych, wyszukiwane będą te poprzedzone prefiksem prefiks_.
Uwaga! Jeśli korzystasz z Drupala 5 lub starszego i zamierzasz współdzielić konta użytkowników (a więc tabele users i sequences), koniecznie przeczytaj o problemie związanym z nadpisywaniem danych kont użytkowników. Nie dotyczy on Drupala 6.
Możesz współdzielić także inne tabele, jednak wskazana jest tutaj daleko idąca ostrożność. Współdzielenie części z nich może powodować błędy w działaniu stron. Oto inne "bezpieczne" ustawienia:
'filter_formats' => '',
'filters' => '',
'locales_meta' => '',
'locales_source' => '',
'locales_target' => '',Powodują one współdzielenie filtrów i tłumaczeń.
To już wszystko.
Poniżej opisane zabiegi są konieczne tylko w wypadku starszych wersji Drupala. Drupal 6 nie korzysta już z tabeli sequences, a więc problem w nim nie występuje.
Wiele wody w Wiśle upłynęło, zanim doszedłem do tego, jak bezproblemowo współdzielić konta użytkowników między różnymi witrynami opartymi o tego samego Drupala. Podstawowe informacje dotyczące tego zagadnienia znajdują się w Podręczniku.
Wracając do współdzielenia kont, wielu administratorów Drupala, pragnących współdzielić zawartość tabeli users między różnymi witrynami, może spotkać się z problemem polegającym na nadpisywaniu jednych kont przez drugie. Dzieje się tak, ponieważ mimo współdzielenia tabeli sequences dla przechowania informacji o liczbie kont użytkowników tworzone są inne rekordy – dla każdej z witryn z osobna. Jak wyjaśnił Harry Slaughter, rekordy tworzone są tak, by ich nazwa zawierała prefiks lub nazwę bazy danych właściwe danej witrynie. Powoduje to niezgodność informacji o liczbie użytkowników i nadpisywanie danych ich kont.
Co robić? Odnaleźć w module user.module poniższy kod:
$array['uid'] = db_next_id('{users}_uid');
i usunąć z niego znaki otwarcia { i zamknięcia } nawiasu klamrowego. Teraz już utworzenie nowego konta zawsze będzie powodwać zapisanie odpowiedniej informacji do rekordu o nazwie users_uid, bez prefiksów.
Uwaga! Nie jest pewne, jak modyfikacja wpływa na witryny korzystające z jednej bazy. Testowana była ona tylko w sytuacji, w której każda z witryn miała osobną bazę danych, a w tabeli sequences znajdowały się rekordy o nazwach typu users_uid, strona1.users_uid oraz strona2.users_uid.
Po zainstalowaniu Drupala, Twoja nowa witryna wykorzystuje bardzo podstawową konfigurację, z jedynie kilkoma modułami, jedną skórką i ograniczonymi uprawnieniami dla użytkowników.
By włączyć i skonfigurować nowe usługi, przejdź do działu zarządzania witryną. Możesz na przykład:
By dowiedzieć się więcej na temat różnych możliwości konfiguracji, przeczytaj opisy znajdujące się obok danych ustawień i przeglądnij dołączoną do Drupala dokumentację (zarządzaj > pomoc).
Dodatkowe moduły, stworzone przez członków społeczności Drupala, dostępne są na drupal.org.
Po zainstalowaniu Drupala możesz doinstalować nowe, dodatkowe moduły, by rozszerzyć jego możliwości.
Pobierz moduł i rozpakuj jego pliki do podkatalogu modules instalacji Drupala (zwykle sites/all/modules). Następnie przeczytaj załączone instrukcje i włącz moduł na stronie Zarządzaj
» Budowa witryny
» Moduły
.
Bardziej wprawni użytkownicy Drupala korzystają zwykle z narzędzi w rodzaju wget i drush. Jest też moduł Plug-in Manager
, który pozwala instalować moduły za pomocą interfejsu Drupala.
dev) znajdują się w fazie rozwoju i powinno się do nich podchodzić ostrożnie.
7-Zip. Jeśli pracujesz na komputerze Macintosh, możesz skorzystać ze
Stuffit Expander. Pod systemem uniksowym, z polecenia
tar -zxvf nazwamodulu-4.5.tar.gzmodules. Folder modules znajdujący się w głównym folderze Drupala jest przeznaczony dla standardowych modułów. Moduły dodatkowe należy umieszczać w folderach witryn, zazwyczaj w sites/all/modules (folder ten należy utworzyć). W przypadku instalacji wielowitrynowej istnieje możliwość instalacji modułów w odrębnych dla każdej z witryn folderach (np. sites/folder-witryny/modules).Zarządzaj»
Budowa witryny»
Moduływ swojej witrynie i zaznacz pole wyboru w kolumnie
Włączonyobok nazwy modułu. Następnie kliknij
Zachowaj konfiguracjęna samym dole. Uwaga! Jeśli aktualizujesz zainstalowany już moduł, przejdź na stronę
update.php swojej witryny (np. http://example.com/update.php) i uruchom proces aktualizacji.Zarządzaj»
Zarządzanie użytkownikami»
Uprawnienia. Przewiń stronę, by sprawdzić czy znajdują się na niej uprawnienia związane z nowym modułem, a jeśli tak, nadaj odpowiednie uprawnienia wybranym rangom użytkowników.
README.txt sprawdź na Zarządzaj»
Budowa witrynylub
Zarządzaj
Konfiguracja witryny. Jeśli nie możesz znaleźć strony ustawień modułu, przejdź na
admin/by-module i spróbuj odnaleźć swój moduł na liście. Jeśli i to nie pomoże, otwórz plik .module modułu i poszukaj funkcji nazwa-modulu_menu - może znajdziesz tam ścieżkę do strony ustawień modułu.Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook
i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.
© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2010 for the Polish translation by Arche Twist (Drupal Polska)
Okresowo sprawdzaj, czy nie pojawiły się nowe wersje zainstalowanych modułów. Mogą one wnosić istotne poprawki, także te z zakresu bezpieczeństwa witryny.
By zaktualizować moduł, pobierz nową wersję i umieść pliki na serwerze. Następnie odwiedź podstronę update.php swojej witryny, by sprawdzić, czy nie należy dokonać aktualizacji tabel bazy danych.
W przeważającej liczbie przypadków aktualizacja nie stanowi zagrożenia dla danych utworzonych przez moduł ani jego ustawień. Jeśli masz wątpliwości, czy dana wersja jest kompatybilna z wersjami poprzednimi, sprawdź release notes
na stronie modułu.
<hr />
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.
© Copyright 2000–2007 by the individual contributors
© Copyright 2006–2007 for the Polish translation by Arche Twist
Tekst został zaktualizowany z uwzględnieniem zmian w Drupalu 5 i 6.
Kiedy już zapoznasz się z różnymi funkcjami Drupala, prawdopodobnie zechcesz zmienić jego wygląd. Celowi temu służą skórki – część z nich możesz pobrać ze strony Drupala, a następnie samemu zmodyfikować.
Instalacja nowej skórki jest niezwykle prosta:README lub INSTALL (jeśli w ogóle istnieją), by dowiedzieć się, czy instalacja skórki wymaga jakichś szczególnych zabiegów.sites/all/themes (jeśli jeszcze nie istnieje, utwórz go).Zarządzaj, a następnie na stronę
Skórki(adres
/admin/build/themes) i włącz nową skórkę.Domyślnana stronie zarządzania skórkami.
Część modułów Drupala, w tym moduł subskrybenta kanałów informacyjnych i moduł wyszukiwarki, wymaga do poprawnej pracy regularnego wykonywania skryptu cron.php, a poprzez niego z kolei – czynności takich jak aktualizacja listy słów kluczowych czy wiadomości z kanałów.
Drupal wymaga także by skrypt był uruchamiany z zewnątrz, np. poprzez przeglądarkę.
W wypadku wątpliwości co do dostępności danych programów, zwróć się o pomoc do administratora swojego serwera.
cron jest programem służącym do okresowego wykonywania zadań, uruchamianym z konsoli i dostępnym pod systemy uniksowe. Sprawdź czy Twój dostawca usług hostingowych dał Ci do niego dostęp i, jeśli tak – zapoznaj się z poniższym opisem konfiguracji. W przeciwnym wypadku skorzystaj z modułu Poormanscron.
Istnieją dwie podstawowe metody konfiguracji crona – z linii poleceń i panelu konfiguracyjnego.
Jeśli posiadasz dostęp do linii poleceń serwera, na którym znajduje się Twoja strona (shell), zapoznaj się z dokumentacją programu crontab (polecenie man crontab) i dodaj poniższe zadanie:
45 * * * * /usr/bin/lynx -source http://przykladowy-adres.com/cron.php
Fragment przykladowy-adres.com musisz oczywiście zamienić na adres Twojej strony. Może się również zdarzyć, że przeglądarka lynx, z której usług korzystamy w tym przykładzie, znajduje się w innym katalogu (sprawdź to komendą whereis lynx), ma inną nazwę (np. /usr/bin/lynx2) lub w ogóle nie jest dostępna. W ostatnim przypadku skorzystaj z innego programu, np. wget. Zadanie będzie wtedy wyglądać mniej więcej tak:
45 * * * * /usr/bin/wget -O – -q http://przykladowy-adres.com/cron.php
Alternatywnie, możesz skorzystać ze skryptu cron-lynx.sh lub cron-curl.sh (jeśli nie masz dostępu do lynx), znajdującego się w podkatalogu /scripts w paczce z Drupalem. Dostosuj skrypt i dodaj zadanie go uruchamiające do crontab:
45 * * * * /home/www/drupal/scripts/cron-lynx.sh
Fragment /home/www/drupal zamień na ścieżkę do Twojego katalogu z Drupalem (musi być to pełna ścieżka).
Jeśli nie masz dostępu do linii poleceń, ale w panelu zarządzania Twoją stroną istnieje możliwość konfiguracji zadań cron, przejdź do niej, a Twoim oczom ukaże się zapewne jakiś formularz. W polu minut wprowadź liczbę 45, a w innych polach dotyczących czasu wykonania wprowadź gwiazdki. Jako polecenie wpisz np. /usr/bin/lynx -source http://przykladowy-adres.com/cron.php (patrz: przykłady wyżej).
<hr />
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.
© Copyright 2000–2007 by the individual contributors
© Copyright 2005–2007 for the Polish translation by Arche Twist
Rdzeniowi Drupala wystarczy 8 MB pamięci, co jest domyślną wartością w konfiguracji PHP. Jednakże niektóre moduły dodatkowe – zwłaszcza te, które zajmują się przetwarzaniem dużych partii tekstu (Textile, Texy) – mogą się okazać bardziej wymagające. Informuje o tym komunikat
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
W takim wypadku należy zwiększyć ilość dostępnej pamięci, w jeden z opisanych niżej sposobów.
Jeśli masz dostęp do pliku konfiguracyjnego PHP php.ini (serwery dedykowane), dodaj do niego następującą linijkę:
memory_limit = 16MJeśli nie (tzw. "serwery wirtualne"), edytuj plik /sites/default/settings.php Drupala:
ini_set('memory_limit', '16M');Możesz również edytować plik .htaccess z głównego katalogu Drupala:
php_value memory_limit 16MWartość 16M jest oczywiście sugerowana i powinna zostać dostosowana do wymagań konkretnej instalacji.
Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.
© Copyright 2000–2007 by the individual contributors
© Copyright 2005–2007 for the Polish translation by Arche Twist
Alternatywna wersja tytułu dla wegetarian i buddystów: Sztuka bycia sobą i rozwiązywania problemów (z Drupalem). Jeśli chcesz wyzbyć się pragnień takich jak te zilustrowane na poniższym obrazku, spróbuj skorzystać z opisanych tu wskazówek.
Jeżeli masz problem z Drupalem, istnieje duże prawdopodobieństwo, że nie jesteś pierwszą osobą, której się on przydarzył. Może dawno temu ktoś sprytny już go rozwiązał. Może nawet rozwiązało go więcej użytkowników. Może każdy z nich zadawał wcześniej to samo pytanie… Zanim do nich dołączysz, skorzystaj z wyszukiwarki znajdującej się w tej witrynie i jeśli jeszcze nie znajdziesz odpowiedzi, pomóż sobie poniższym poradnikiem.
Zastanów się. Przypomnij sobie, jakich zmian w witrynie niedawno dokonałeś, jakie moduły zainstalowałeś. Zazwyczaj to w jednej z tych zmian tkwi problem. Czy na pewno wybrano odpowiednie wersje modułów? Sprawdź, czy wszystko dobrze zrobiłeś zanim zaczniesz przeklinać Drupala bądź moduł.
Część użytkowników je pomija, ale Ty masz w sobie mądrość, by docenić wagę zawartych w nich informacji. Spróbuj zinterpretować komunikat. Zazwyczaj, gdy dobrze się wczytasz, okaże się, że rozwiązanie problemu jest tuż przed Twoimi oczyma. Jeżeli nie masz dostępu do komunikatu, przeszukaj dzienniki zdarzeń witryny lub serwera, zaczynając od najnowszych wpisów. W dziennikach serwera znaleźć można następujące rodzaje błędów:
Internal server error(błąd nr 500) związane z ustawieniami zawartymi w pliku
.htaccess (np. directive not allowed here)
Fatal error: Allowed memory size of 8388608 bytes exhausted
Jeżeli problem dotyczy layoutu – rozmieszczenia elementów, wielkości czcionki, etc. – skorzystaj z narzędzia sprawdzającego poprawność strony. Zwróć baczną uwagę na niepoprawne „zamykanie” znaczników i inne problemy strukturalne. Inne komunikaty, na przykład te o encjach, są mniej ważne.
Naprawdę. Choć wiele modułów wystarczy po prostu włączyć, część z nich wymaga podjęcia dodatkowych kroków. One nie są zepsute, one tak już mają. Niektóre moduły potrzebują specjalnych rozszerzeń PHP lub innych modułów albo też są skonfliktowane z innymi modułami.
Jeśli komunikat błędu wydaje ci się bezsensowny, wyszukaj go za pomocą wyszukiwarki internetowej, np. Google. Starannie stwórz zapytanie: "Argument #1 is not an array" drupal. Umieszczenie cudzysłowów w odpowiednich miejscach spowoduje zwrócenie stron wspominających o dokładnie tym komunikacie, a dodanie słówka „drupal” – pozwoli wyszukać te informacje, które odnoszą się do Drupala. Pamiętaj, by usunąć ścieżki do katalogów, które na serwerach innych osób mogą być zupełnie inne. Pozostaw natomiast nazwy plików, które pojawiają się w komunikatach o błędach.
Przyjrzyj się następującemu komunikatowi:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(n.nid), n.title FROM category c INNER JOIN category_node r ON c.cid = r.cid INN' at line 1 query: SELECT c.*, r.DISTINCT(n.nid), n.title FROM category c INNER JOIN category_node r ON c.cid = r.cid INNER JOIN category cn ON c.cnid = cn.cid INNER JOIN node n ON c.cid = n.nid INNER JOIN node cnn ON cn.cid = cnn.nid WHERE n.status = 1 AND n.moderate = 0 ORDER BY cn.weight, cnn.title, c.weight, n.title in /var/www/html/doadance/drupal/includes/database.mysql.inc on line 120.
Choć na końcu komunikatu pojawia się plik database.mysql.inc, to nie w nim leży problem; on tylko przyczynił się do jego znalezienia. Trzeba znaleźć prawdziwego winowajcę. Spróbuj to uczynić, znajdując w komunikacie nazwę tabeli bazy danych. W tym wypadku brzmi ona category_node, co wskazuje na moduł Category
, choć błędy powodować może i inny moduł, który zażądał z bazy danych informacji związanych z kategoriami (category
).
Wszystkie strony są przez Drupala „dynamicznie” generowane. Adres generowanej strony (ta część po twojej domenie) jest zazwyczaj definiowany w hook_menu() danego modułu. By odpowiedzieć sobie na pytanie typu „Jak konstruowana jest moja strona rss.xml?”, trzeba:
node.module i jego funkcji node_menu()rss.xml jest node_feed() i że tam należy szukać dalszych informacjiPrzy okazji, odnośniki w powyższym przykładzie prowadzą do bardzo przydatnej strony Drupal API
.
Wszystkie strony generowane dynamicznie można w ten sposób „szpiegować”. Popatrz na adres, sprawdź z jakim modułem jest związany, a następnie przyglądnij się kodowi tego modułu.
Na przykład modułem Devel
. Możesz też pobawić się w hakowanie. Na przykład w przypadku komunikatu warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/httpd/global/drupal/modules/node.module on line 1303
otwórz plik node.module i odnajdź linię nr 1303. Jest tam zapis in_array('status', $node_options). Dodaj we wcześniejszej linii zapis print("Node options: '".print_r($node_options,1)."'");, odśwież stronę i obserwuj. Może zwrócone przez Drupala dane coś podpowiedzą.
Zanim jednak do tego przystąpisz, przeczytaj jak zrobić to mądrze. Jeśli znajdziesz rozwiązanie, nie zapomnij je opisać na stronie, na której wcześniej zadałeś pytanie, nawet gdy na nie nikt nie odpowiedział.
Kolejne części poradnika ukażą się w przyszłości.
Powyższy tekst jest luźnym tłumaczeniem strony Troubleshooting FAQ
, która udostępniona została na zasadach licencji Creative Commons License, Attribution-ShareAlike 2.0
.
Copyright 2000–2008 by the individual contributors <http://drupal.org>
Portions copyright 2008 by Arche Twist <http://drupal.org.pl>
Drupalowy system skórek (ang. themes) jest bardzo rozbudowany. Jego struktura zapewnia łatwe łączenie ze sobą poszczególnych komponentów: silników (w oparciu o które mogą powstawać skórki), szablonów, arkuszy stylów i skryptów PHP.
Skórka może być stworzona na różne sposoby, przy użyciu różnych narzędzi (więcej informacji na stronie Theming overview). Dostępnych jest kilka tzw. silników skórek, w tym XTemplate i PHPTemplate. Ten przewodnik skupi się jedynie na ostatnim.
PHPTemplate wykorzystuje szablony zawarte w plikach o rozszerzeniu .tpl.php oraz arkusze stylów .css.
Skórki i szablony umieszcza się w osobnych podkatalogach wewnątrz katalogu themes Drupala. Silniki przeskanują wszystkie podkatalogi w poszukiwaniu odpowiednich dla siebie szablonów. Jeśli odnajdą także plik style.css, będzie on również wykorzystywany.
Możesz takze stworzyć skórkę składającą się jedynie z arkusza stylów CSS, tworząc podkatalog w katalogu istniającej skórki i umieszczając tam plik style.css. Drupal połączy ów arkusz ze skórką, w której podkatalogu się on znajduje. W ten sposób zbudowana jest na przykład popularna skórka Marvin.
Jeśli w katalogu skórki znajdzie się plik screenshot.png, Drupal wyświetli jego zawartość na liście skórek w menu zarządzania stroną.
Jeśli chcesz stworzyć własną skórkę, możesz albo zmodyfikować istniejącą lub zacząć od podstaw.
By zmodyfikować istniejącą skórkę, po prostu skopiuj ją do nowego katalogu i nadaj jej inną nazwę (skórki nie powinny posiadać nazw istniających modułów). Następnie zmień skórkę tak jak Ci się podoba.
Jeśli zamierzasz zaprojektować skórkę od podstaw, możesz albo stworzyć ją bezpośrednio w PHP, albo wykorzystać jeden z dostępnych silników skórek. W Drupalu 4.7 standardowym silnikiem jest PHPTemplate i jest to narzędzie polecane - większość gotowych skryptów dodających nowe funkcje jest przygotowywana właśnie z myślą o PHPTemplate.
Od wersji 4.7 Drupal pozwala twórcom skórek na definiowanie i implementowanie dowolnej liczby tzw. "obszarów" (ang. regions) zawartości, pozwalających kontrolować rozmieszczenie elementów na stronie.
Obszary są bardzo interesującą funkcją Drupala, ponieważ pozwalają na prawie dowolne zaprojektowanie layoutu strony. Można je także wykorzystać do budowania odmiennych layoutów dla różnych działów witryny.
W skórkach nie opartych na silnikach, dostępne obszary definiowane są przez funkcję themename_regions() w pliku .theme. Skórki wykorzystujące silniki, korzystają z ich obszarów (zdefiniowanych w plikach .engine), ale także mogą definiować własne.
Zawartość jest umieszczana w obszarach poprzez system tzw. bloków (odpowiada za to moduł block) i wywołania drupal_set_content(). Na przykład kod drupal_set_content('left','Cześć wam.') sprawiłby, że tekst "Cześć wam" zostałby umieszczony w obszarze o nazwie "left" (zazwyczaj jest to tzw. lewy pasek boczny). Wszystkie dostępne obszary znajdują się na liście na stronie konfiguracji bloków w menu zarządzania.
Pierwszy obszar zdefiniowany w pliku .theme skórki lub pliku .engine silnika staje się obszarem "domyślnym".
Więcej praktycznych informacji, uwzględniających szablony PHPTemplate, znajduje się na stronie Obszary bloków i segmentów w PHPTemplate.
PHPTemplate to tzw. silnik skórek, napisany przez Adriana Rossouwa. Wykorzystuje on pliki o nazwach kończących się na .tpl.php do modyfikacji wbudowanych w Drupala funkcji theme_costam(). Listę dostępnych funkcji można znaleźć na stronie Development Plumbing. Każdy ze wspomianych plików zawiera szkielet HTML oraz jakiś prosty kod PHP służący do prezentowania dynamicznych danych. PHPTemplate jest więc świetnym wyborem jeśli znasz trochę PHP. Korzystając z prostych "ściągawek" możesz w łatwy sposób stworzyć rozbudowane skórki.
Jeśli natomiast nie znasz PHP, PHPTemplate i tak może być odpowiednim wyborem, ponieważ naprawdę niewielkie fragmenty kodu skórek wymagają jego użycia. Możesz po prostu skorzystać ze wspomianych już ściągawek, które użytkownicy umieszczają na drupal.org, i wkleić je do swojej skórki.
Jeśli posiadasz wersję 4.7 (lub późniejszą) Drupala, PHPTemplate jest już w nim zawarty. W przypadku starszych wersji, musisz go najpierw pobrać i zainstalować poprzez wysłanie na serwer, do podkatalogu /themes/engines.
Utwórz nowy podkatalog wewnątrz katalogu themes. Następnie utwórz w nim plik page.tpl.php. Jest to jedyny plik, który jest absolutnie wymagany. Jego zadanie polega na nadpisywaniu (zastępowaniu) funkcji theme('page') Drupala, która odpowiada za generowanie stron, wraz z takimi ich elementami jak nagłówek, stopka, karty czy paski boczne.
Możesz utworzyć pliki zastępujące następujące funkcje (kliknij w nazwę pliku by przejść do strony z jego objaśnieniem):
theme('page') - plik page.tpl.phptheme('block') - plik block.tpl.phptheme('box') - plik box.tpl.phptheme('node') - plik node.tpl.phptheme('comment') - plik comment.tpl.phpPHPTemplate zawiera przykładowe pliki szablonów - sprawdź w katalogu skórki box_grey. Możesz skopiować znajdujący się tam plik page.tpl.php do katalogu swojej skórki i tak zacząć jej tworzenie. Pamiętaj, że aby Drupal "dowiedział się" o istnieniu nowej skórki, będziesz musiał odwiedzić stronę zarządzaj » skórki.
Jeśli chcesz zastąpić jakieś inne, niewymienione tutaj funkcje, musisz postarać się o to sam.
Objaśnienie wszystkich standardowych zmiennych występujących w plikach szablonów oraz przykłady tych plików można znaleźć na stronie PHPTemplete theme engine na drupal.org.
Zanim przystąpisz do defniowania obszarów dla swojego szablonu PHPTemplate, być może będziesz chciał się zapoznać z ogólnymi informacjami na temat obszarów.
Poniżej znajdują się informacje na temat standardowych obszarów i dodawania własnych, ich wykorzystanie jednak daje o wiele szersze możliwości niż mógłbyś przypuszczać.
Domyślnie PHPTemplate definiuje pięć podstawowych obszarów: lewy, prawy, obszar zawartości, nagłówek oraz stopkę. Ich angielskie nazwy, używane w samym szablonie, to odpowiednio: left, right, content, header, oraz footer.
Definiowanie obszarów polega jedynie na wprowadzeniu w szablonie zmiennych odwołujących się do tychże obszarów. Zmienne te to: $sidebar_left, $sidebar_right, $content, $header oraz $footer. By wyświetlić na stronie zawartość danego obszaru, wpisalibyśmy w pliku szablonu taki na przykład kod:
<?php print $header; ?>
No dobrze, dotychczas nie było zbyt ciekawie, ale przejdziemy do czegoś bardziej interesującego. Przypuśćmy, że chcę dodać nowy obszar ponad główną zawartością, by być na przykład w stanie umieścić bloki zarówno nad zawartością (np. artykułami), jak i pod nią. Muszę więc najpierw zdefiniować swoje obszary w pliku szablonu mojej skórki.
Definiowanie obszarów jest proste jak budowa cepa i odbywa się w pliku template.php w katalogu ze skórką. Jeśli jeszcze nie posiadasz tego pliku, utwórz go teraz. Następnie wprowadź do niego nową funkcję:
<?php
function moja-skórka_regions() {
return array(
'left' => t('left sidebar'), /* to lewy pasek boczny */
'right' => t('right sidebar'), /* a to prawy */
'header' => t('header'), /* to nagłówek strony */
'top' => t('góra'), /* a to nasz nowy obszar! */
'content' => t('content'), /* dalej zawartość */
'footer' => t('footer') /* i stopka */
);
}
?>
Zwróć uwagę na komentarze objęte znakami /* */.
Wszystkie te obszary są standardowe, z jednym wyjątkiem – wprowadziliśmy nowy obszar o nazwie „top”, który nazwaliśmy „góra”. Reszcie obszarów nie musimy nadawać polskich nazw, ponieważ zostanie to automatycznie dokonane przez moduł obsługujący tłumaczenia.
Pamiętaj by zamienić tekst moja-skórka na nazwę swojej skórki. Inaczej funkcja nie będzie działać.
Mamy obszar, ale Drupal jeszcze nie wie, gdzie go umieścić. Musimy wprowadzić obszar do pliku szablonu strony. Otwieramy więc plik page.tpl.php i w wybranym miejscu (np. powyżej zawartości) wpisujemy:
<?php print $top; ?>
W ten jakże nieskomplikowany sposób umieściliśmy obszar w naszej skórce. Możemy już umieścić w nim bloki.
Wyobraź sobie co można uzyskać dzięki tej funkcji w połączeniu z alternatywnymi szablonami dla różnych działów witryny. Tak, tak, dzięki temu możemy na przykład sprawić by główna strona nie wyświetlała nawet listy najnowszych segmentów, a wybrane przez nas bloki i zmodyfikowane listy tematyczne.
O tym jednak napiszę w specjalnym poradniku, w którym omówię wykorzystanie obszarów, alternatywnych szablonów oraz genialnego modułu Views.
Zawarte tu informacje dotyczą modyfikacji wyglądu segmentów i całej strony w zależności od typu wyświetlanego segmentu (artykuł, wątek, książka). Mogą być one przydatne np. gdy chcesz w inny sposób zaprezentować użytkownikom statyczne strony typu „o nas” czy „regulamin korzystania” (pozbyć się informacji o dacie dodania itp.).
Drupal i PHPTemplate oferują dwie podstawowe możliwości:
poprzez stworzenie alternatywnych szablonów PHPTemplate.
Skopiuj swój plik node.tpl.php, odpowiadający za wygląd segmentu i nadaj mu nową nazwę, zgodnie ze schematem node-rodzaj_zawartości.tpl.php, gdzie rodzaj_zawartości to np. page
czy story
.
Następnie zmodyfikuj zawartość tego pliku zgodnie z Twoimi wymaganiami. Możesz usunąć pewne fragmenty albo dodać nowe. Zwróć uwagę, że – korzystając z funkcji Clean URLs
– możesz zamieścić swoją stronę pod adresem typu /o-nas czy /pomoc.
Alternatywne szablony modyfikujące wygląd całej strony osiągnąć można na wiele sposobów. Tutaj przedstawiony zostanie jeden z najprostszych, a zarazem najbardziej wygodnych.
Mechanizm tego rozwiązania polega na wywołaniu z głównego pliku szablonu całej strony innych szablonów, w zależności od rodzaju segmentu.
Skopiuj swój plik page.tpl.php w bezpieczne miejsce oraz do pliku page-default.tpl.php. Zawartość page.tpl.php zastąp poniższym kodem, którego autorem jest PhilK:
<?php
switch ($node->type) {
case 'book': $inc = 'page-book.tpl.php'; break;
case 'blog': $inc = 'page-blog.tpl.php'; break;
case 'image': $inc = 'page-image.tpl.php'; break;
case 'forum': $inc = 'page-forum.tpl.php'; break;
default: $inc = 'page-default.tpl.php'; break;
}
include ($inc);
?>
Działanie kodu:
Możesz usunąć wybrane linijki rozpoczynające się od case albo dodać własne, wywołujące szablony wyglądu innych rodzajów segmentów.
Następnie powinieneś oczywiście wyedytować każdy z potrzebnych plików .tpl.php i odpowiednio dostosować wygląd.
W ten sposób zmienić możesz nie tylko strukturę stron (HTML), ale i ich ostylowanie. W sekcji <head> danego szablonu umieść wywołanie alternatywnego arkusza stylów CSS, np. tak:
<style type="text/css" media="all">@import "/katalog_skórki/image.css";</style>
Możesz także sprawić by pierwsza, główna strona witryny posiadała inny wygląd. W tym celu stwórz szablon page-front.tpl.php i dodaj następującą linijkę na początek kodu w pliku page.tpl.php:
if ($is_front) {include 'page-front.tpl.php'; return; }
Jest wiele innych sposób na zmianę wyglądu w zależności od typu segmentu, włączają w to uzależnienie wyglądu od kategorii, w której umieszczony został dany segment. Więcej informacji znajdziesz na poniższych stronach:
Jeśli chciałbyś zastąpić (nadpisać) funkcję inną niż block, box, comment, node czy page, musisz poinformować o tym PHPTemplate.
By to uczynić, w katalogu swojej skórki musisz stworzyć plik template.php. Plik ten powinien rozpoczynać się znacznikiem <?php a kończyć znacznikiem ?>, a w jego treści winny się znajdować nadpisane funkcje. Decydują one o wykorzystaniu danego szablonu albo zmiennych.
Po pierwsze zacząć musisz od zlokalizowania funkcji, którą chcesz zastąpić. Ich lista znajduje się na stronie API documentation.
Przykładem takiego nadpisania funkcji jest zmiana sposobu wyświetlania odnośników nawigacyjnych na stronach książek, opisana w artykule Nawigacja w książkach po staremu.
Funkcje nadpisuje się poprzez stworzenie w pliku template.php nowej funkcji o takiej samej nazwie, jednak z tą różnicą, że przedrostek theme zamienia się na phptemplate. Na przykład funkcja odpowiadająca za wyświetlanie elementów list theme_item_list będzie teraz nosić nazwę phptemplate_item_list.
Najwygodniej jest po prostu skopiować oryginalną funkcję Drupala i zmodyfikować ją.