Instalacja i aktualizacja

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.

Wymagania

  1. Serwer stron internetowych, który może uruchamiać skrypty PHP
    • Zalecany: Apache. Drupala tworzono z wykorzystaniem wersji 1.3.x. Pomyślne testy przeprowadzono na wersji 2.0.x.
    • Opcjonalny: IIS. Drupal powstaje także z myślą o IIS i wszystko wskazuje na to, że powinien działać pod IIS.
  2. PHP
    • Drupal 4.6 wymaga do pracy PHP w wersji 4.3.3 lub nowszej (PHP 5 jest także obsługiwany). Drupal od wersji 4.2 do 4.5.2 wymaga PHP w wersji 4.1 lub nowszej. Starsze wersje Drupala współpracować będą także z PHP 4.0.6. Zalecamy korzystanie z najnowszej podwersji PHP 4.x.
    • Rozszerzenie XML dla PHP (wykorzystywane przez moduły bloggerapi, drupal, jabber i ping). Rozszerzenie to jest domyślnie włączone w standardowej instalacji PHP; PHP w wersji dla Windows posiada to rozszerzenie wbudowane.
    • 8MB pamięci PHP dla samego rdzenia Drupala. Jeśli instalujesz dodatkowe moduły, możesz być zmuszony do zwiększenia ilości pamięci. Inne dystrybucje Drupala, takie jak dystrybucja z CivicSpace, mogą mieć wyższe wymagania co do ilości pamięci.
    • By Drupal mógł działać PHP musi posiadać następujące dyrektywy konfiguracyjne:
    • Ustawienia te znajdują się w standardowym pliku .htaccess dołączonym do Drupala, więc nie powinieneś być zmuszony do ich samodzielnego wprowadzenia. Pamiętaj jednak, że modyfikacja konfiguracji PHP poprzez plik .htaccess działa jedynie
      • w przypadku serwera Apache (lub kompatybilnego z nim),
      • jeśli plik .htaccess jest rzeczywiście odczytywany, tzn. jeśli AllowOverride nie jest ustawione na None,
      • jeśli PHP zainstalowane jest w postaci modułu serwera Apache.
    • Przeczytaj informacje na tej stronie, aby dowiedzieć się jak zmienić ustawienia PHP w inny sposób.
    • Korzystanie z bazy danych wykorzystującej PEAR (patrz niżej) możliwe jest oczywiście jedynie wtedy, gdy sam PEAR jest zainstalowany.
  3. Baza danych współpracująca z PHP
    • Zalecana: MySQL w wersji 3.23.17 lub nowszej (Drupal korzysta z INNER JOIN i join_condition). Obsługiwane jest także MySQL w wersji 4.
    • Od wersji 4.7 Drupal dobrze współpracuje z bazą danych PostgreSQL w wersji 7.3 lub nowszej (będzie działać prawdopodobnie także pod wersją 7.2, możliwe jest jednak, że napotkasz pewne błędy, jeśli masz zamiar dokonać aktualizacji z Drupala 4.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

Instalujemy Drupala

Baza danych

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.

Pliki

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).

Instalacja

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.

Pierwsze konto użytkownika

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.

Instalujemy Drupala 4.7

SPIS TREŚCI

  1. Wymagania
  2. Dodatkowe wymagania
  3. Instalacja
    • zarządzanie Drupalem
    • dostosowywanie skórek
  4. Aktualizacja
  5. Więcej informacji

WYMAGANIA

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.

DODATKOWE WYMAGANIA

  • By korzystać z usług opartych o XML, takich jak API Bloggera, Jabber czy kanały RSS, PHP musi być wyposażone w obsługę XML. Rozszerzenie to jest w standardowej instalacji PHP4 domyślnie włączone.
  • Jeśli chcesz korzystać z funkcji CleanURLs ("czyste" adresy), będziesz potrzebować modułu mod_rewrite, a także możliwości korzystania z lokalnych plików .htaccess (więcej informacji można znaleźć w Podręczniku Drupala - Drupal Handbook - na drupal.org).

INSTALACJA

1. POBIERZ DRUPALA

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

2. UTWÓRZ BAZĘ DANYCH DLA DRUPALA

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:

  • drupal to nazwa Twojej bazy danych
  • nikt@localhost to nazwa użytkownika konta MySQL na Twoim serwerze
  • haslo to hasło do tego konta

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.

3. WPROWADŹ SCHEMAT BAZY DANYCH DRUPALA

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.

4. ŁĄCZENIE SIĘ Z DRUPALEM

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:

  • sites/sub.hajdananiedziwedzia.pl/
    • settings.php
    • themes/dodatkowa_skorka
    • modules/dodatkowy_modul

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.

5. KONFIGUROWANIE DRUPALA

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ę.

6. ZADANIA CRON

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.

ZARZĄDZANIE DRUPALEM

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.

DOSTOSOWYWANIE SKÓREK

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.

AKTUALIZACJA

  1. Zrób kopię zapasową swojej bazy danych i katalogu Drupala - zwłaszcza pliku konfiguracyjnego sites/default/settings.php.
  2. Zaloguj się jako użytkownik o ID równym 1.
  3. Usuń wszystkie stare pliki Drupala i rozpakuj nowe pliki Drupala, do katalogu w którym go poprzednio umieściłeś.
  4. Zmodyfikuj plik konfiguracyjny, by upewnić się, że zawiera najnowsze i prawidłowe informacje.
  5. Uruchom plik update.php wchodzą na stronę http://www.tutaj_adres_Twojej_strony.pl/update.php.

WIĘCEJ INFORMACJI

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

Aktualizowanie Drupala

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).

Kroki wstępne

Aktualizację witryny warto poprzedzić zalogowaniem się do konta administratora (pierwszego konta użytkownika) oraz aktywacją trybu przerwy technicznej: ZarządzajKonfiguracja witrynyPrzerwa 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ądzajBudowa witrynyModuły oraz Skórki.

Tworzenie kopii zapasowej istniejącej konfiguracji

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.

phpMyAdmin
  • zaloguj się do phpMyAdmin i wskaż odpowiednią bazę danych na liście po lewej>
  • kliknij kartę Eksport
  • kliknij Zaznacz wszystkie
  • upewnij się, że zaznaczone są opcje StrukturaDane
  • zaznacz Zapisz jako plik
  • kliknij przycisk Wykonaj i zapisz plik .sql na dysk
linia poleceń MySQL (alternatywnie)

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/set­tings.php > backup/backup.sql

Pobranie i wysłanie na serwer nowych plików Drupala

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:

  • .htaccess
  • sites/default/set­tings.php
  • katalog files
  • wszelkie inne pliki, które mogą okazać się potrzebne

Uruchomienie skryptu aktualizującego bazę danych

Przed 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_checkTRUE 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.

Po aktualizacji

Każda witryna jest inna

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.

Włączenie modułów i skórek

Na stronach ZarządzajBudowa witrynyModułySkórki należy włączyć wszelkie potrzebne moduły i skórki, a na ZarządzajZarządzanie użytkownikamiUprawnienia (lub Kontrola dostępu) nadać użytkownikom odpowiednie uprawnienia.

Usunięcie plików

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.

Testowanie zaktualizowanej witryny

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

Aktualizacja - łatanie i porównywanie plików

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).

Omówione sytuacje

  1. Co pewien czas pojawiają się nowe wersje Drupala, których wydanie podyktowane zostało wykryciem luk bezpieczeństwa. Czy nie znudziło się już Wam wysyłanie od nowa całej paczki z Drupalem?
  2. Denerwuje Was jakiś mniej znany błąd lub chcecie skorzystać z łatki dodającej niestandardowe funkcje? Mozolnie ślęczycie nad edytorem, kopiując i wklejając odpowiednie linijki?
  3. A może chcecie stworzyć własną łatkę, by móc później automatycznie dodawać poczynione przez siebie modyfikacje do oryginalnych plików?

1. Porównywanie katalogów przed aktualizacją Drupala

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.

WinMerge – tylko pod Windows

Porównywanie dwu archiwów z Drupalem w WinMerge

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.

Vim – pod Unix/Linux i Windows

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.

2. Łatanie plików

Ł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

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).

Fragment 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ędziaGeneruj 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łatania
  • p – P level
  • unified – jeśli równa się 0, tzw. zunifikowany format 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

Vim

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.

Okno gVim-a z zestawem kolorów Twist, podzielone między załatany, a oryginalny plik

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.

3. Tworzenie łat

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.

za pomocą WinMerge

Otwieramy do porównania oryginalny plik i jego kopię zmodyfikowaną przez nas oraz wchodzimy do menu NarzędziaGeneruj 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.

za pomocą Patch

Wydajemy polecenie

diff -u plik1 plik2

Kapitanie, nie mam go na radarze!

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 komputerWłaściwości → karta ZaawansowaneZmienne środowiskoweZmienne systemowe. Tam, na liście odszukujemy zmienną Path i na końcu zawartości pola Wartość dodajemy:

  • dla Patch: ;C:\Program Files\GNU\Patch\bin
  • dla DiffUtils: ;C:\Program Files\GNU\DiffUtils\bin

Powyższe ścieżki są domyślnymi – jeśli programy zainstalowane są w niestandardowych katalogach, trzeba je oczywiście wskazać.

Wiele witryn, jeden Drupal (multisite)

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.

Spis treści

  • Zalety
  • Wprowadzenie
    1. nazewnictwo katalogów
    2. tabele bazy danych
    3. współdzielenie tabel
  • Instalacja
    1. settings.php
    2. dowiązanie/alias
    3. konfiguracja nowej witryny
    4. konfiguracja współdzielenia tabel (opcjonalnie)

Zalety

  • oszczędność miejsca
    wszystkie strony korzystają z tych samych plików Drupala
  • prostsza aktualizacja
    jednokrotna aktualizacja plików
  • możliwość współdzielenia tabel bazy danych
    logowanie do wszystkich stron jednym loginem i hasłem, uproszczenie zarządzania wieloma witrynami

Wprowadzenie

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.

1. nazewnictwo katalogów

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:

witryna w podkatalogu
adres witryny: przykładowy-adres.pl/strona

nazwa katalogu: przykładowy-adres.pl.strona

witryna jako subdomena
adres witryny: strona.przykładowy-adres.pl

nazwa katalogu: strona.przykładowy-adres.pl

witryna z własną domeną
adres witrny: przykładowy-adres.pl

nazwa katalogu: przykładowy-adres.pl

2. tabele bazy danych

Musisz podjąć decyzję, czy chcesz umieścić tabele bazy danych nowej strony wewnątrz obecnej bazy, czy w nowej bazie:

wewnątrz obecnej bazy
tabele nowej bazy będą się różnić od starych prefiksem, np. prefiks_node zamiast node
w nowej bazie
konieczne utworzenie nowej bazy o tej samej nazwie użytkownika i haśle co stara!

3. współdzielenie tabel

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.

Instalacja

1. settings.php

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).

2. dowiązanie/alias

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.

3. konfiguracja nowej witryny

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.

4. konfiguracja współdzielenia tabel (opcjonalnie)

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.

jedna baza danych
'default' => 'prefiks_'
dwie lub więcej baz
'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.

Problem z nadpisywaniem kont podczas współdzielenia użytkowników

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.