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.