Artykuły

Tworzenie lokalnej kopii witryny Joomla!

Ocena użytkowników:  / 0
SłabyŚwietny 

Warto mieć lokalną kopię całej naszej witryny www Joomla! na domowym komputerze, nawet jeżeli jest to komputer przenośny ;-). Jest ku temu wiele powodów:

  • Możemy wygodnie, w domowych warunkach, przygotować kolejny artykuł przeznaczony na naszą witrynę nie dbając o zaniki łączności, a po dopieszczeniu treści po prostu przekopiować ją do wersji produkcyjnej.
  • Możemy przetestować najnowsze rozszerzenie czy dodatek Joomla! bez strachu, że spowoduje on utratę danych lub inne błędy na stronie.
  • Możemy przygotować w domowych warunkach witrynę dla klienta, a następnie pokazać mu ją, uruchomioną na domowym komputerze.

Instrukcja zamieszczona w artykule pozwoli ci przenieść wykonaną własnoręcznie witrynę na serwer usługodawcy internetowego w kilku prostych krokach, szybko, sprawnie i wygodnie.

Zapraszam do lektury!

 

Założenia:

  • System operacyjny przygotowany do instalacji środowiska Joomla!

W praktyce oznacza to instalację na naszym domowym komputerze: serwera www, serwera php oraz bazy danych. Jak osiągnąć ten cel w systemie operacyjnym opartym o jądro GNU/Linux opisałem tutaj. Niewiele stoi jednak na przeszkodzie, by opisane dalej kroki pozwoliły odtworzyć witrynę www na komputerach działających pod kontrolą innych, komercyjnych systemów operacyjnych, o ile tylko spełnione jest podane założenie.

 

Co będzie nam potrzebne:

  • Skrypt kickstart.php.
  • Pełna kopia naszej witryny www utworzona za pomocą dodaktu JoomlaPack.

Skrypt 'kickstart.php' rozpakuje archiwum naszej witryny zapisane w formacie .jpa. Format .jpa jest otwartym, chociaż specyficznym formatem zapisu danych wykorzystywanym przez dodatek JoomlaPack, o którym więcej za chwilę. Paczkę ze skryptem pobierzemy np. stąd. Wykorzystanie tego skryptu zwalnia nas z obowiązku tworzenia tablic w bazie danych, pamiętania o zmianie uprawnień i wielu innych niezbyt przyjemnych rzeczach. Nie musimy instalować jakiś dodatkowych programów, gdyż skrypt uruchomi się na każdym serwerze PHP, jest niezależny od systemu operacyjnego. A na koniec jeszcze po sobie posprząta i sam się usunie.

Dodatek JoomlaPack to moim zdaniem jedno z najlepszych i najbardziej przydatnych rozszerzeń Joomla!. Mówiąc w wielkim skrócie służy do tworzenia kopii bezpieczeństwa naszej witryny. Wciskając jeden przycisk pozwala na stworzenie kopii zarówno bazy danych, jak i wszystkich plików witryny. Powstały pojedynczy plik wynikowy jest archiwum, które domyślnie zawiera też instalator. Wspomniany instalator pozwala na odtworzenie naszej witryny na dowolnym innym komputerze. Czegóż chcieć więcej?

 

Zaczynamy!

Sposób instalacji dodatku JoomlaPack wykracza poza ramy tego artykułu. Niemniej znajomość kilku szczegółów dotyczących konfiguracji jest isotna.Przedstawiona instrukcja została przygotowana dla JoomlaPack w wersji 2.3.3.

 

Logujemy się do zaplecza naszej witryny. Z menu wybieramy:

Komponenty -> JoomlaPack -> Configuration

Przechodzimy do zakładki Configuration, a następnie wybieramy sekcje:

Profile settings -> Advanced

 

Sprawdzamy, czy nasze nastawy zgadzają się z tymi podanymi na Obrazek 1.

{slimbox

/images/stories/20100116_JoomlaKickstart/640_01_Restore_11.png,

/images/stories/20100116_JoomlaKickstart/200_01_Restore_11.png

}

Obrazek 1.

Przypominam o konieczności zapisania ewentualnych zmian w konfiguracji!
Kolejnym krokiem powinno być wykonanie świeżej, pełnej kopii bezpieczeństwa (wszystkie pliki oraz cała baza danych). Ściągamy wynikowy plik .jpa na nasz domowy komputer.

 

Zakładam, że jesteśmy w naszym katalogu domowym:

maciej@maciej-gucek2:~$ pwd

/home/maciej

 

Tworzymy  'joomla_temp' i przekopiowujemy do niego:

  • paczkę ze skryptami kickstart (kickstart-2.4.zip),

  • archiwum naszej witryny (.jpa).

 

W moim przypadku wyglądało to następująco:

maciej@maciej-gucek2:~/joomla_temp$ ls -gGh

razem 220M

-rwxr-xr-x 1 42K 2010-01-16 21:13 kickstart-2.4.zip

-rwxr-xr-x 1 220M 2010-01-16 21:14 site-mslonik.pl-20100111-220110.jpa

 

Oczyszczamy katalog przeznaczony dla naszej strony www, czyli ten, którym potrafi zarządzać serwer www. W moim przypadku jest to katalog '~/stronawww':

 

maciej@maciej-gucek2:~$ rm -f ~/strona_www/*

 

Rozpakowujemy paczkę 'kickstart-2.4.zip' do katalogu przeznaczonego dla naszej strony:

 

maciej@maciej-gucek2:~$ unzip /home/maciej/joomla_temp/kickstart-2.4.zip -d /home/maciej/strona_www

Archive: /home/maciej/joomla_temp/kickstart-2.4.zip

inflating: /home/maciej/strona_www/kickstart.php

inflating: /home/maciej/strona_www/de-DE.kickstart.ini

inflating: /home/maciej/strona_www/el-GR.kickstart.ini

inflating: /home/maciej/strona_www/en-GB.kickstart.ini

inflating: /home/maciej/strona_www/es-ES.kickstart.ini

inflating: /home/maciej/strona_www/fr-FR.kickstart.ini

inflating: /home/maciej/strona_www/nb-NO.kickstart.ini

inflating: /home/maciej/strona_www/sv-SE.kickstart.ini

 

Przekopiowujemy plik ze spakowaną witrynę do katalogu przeznaczonego dla naszej strony:

 

maciej@maciej-gucek2:~$ cp -v ~/joomla_temp/site-mslonik.pl-20100111-220110.jpa ~/strona_www/`/home/maciej/joomla_temp/site-mslonik.pl-20100111-220110.jpa' -> `/home/maciej/strona_www/site-mslonik.pl-20100111-220110.jpa'

 

Teraz chyba najtrudniejszy krok. Musimy wszystkim plikom zmienić prawa tak, by mogły być czytane przez wszystkich użytkowników:

 

maciej@maciej-gucek2:~$ chmod -v o+r strona_www/*

uprawnienia do `strona_www/de-DE.kickstart.ini' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/el-GR.kickstart.ini' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/en-GB.kickstart.ini' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/es-ES.kickstart.ini' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/fr-FR.kickstart.ini' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/kickstart.php' zachowane jako 0615 (rw---xr-x)

uprawnienia do `strona_www/nb-NO.kickstart.ini' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/site-mslonik.pl-20100111-220110.jpa' zachowane jako 0704 (rwx---r--)

uprawnienia do `strona_www/sv-SE.kickstart.ini' zachowane jako 0704 (rwx---r--)

 

Przyznajemy także prawo do zapisu w katalogu naszej strony www wszystkim użytkownikom:

 

maciej@maciej-gucek2:~$ chmod -v o+w /home/maciej/strona_www/

uprawnienia do `/home/maciej/strona_www/' zmienione na 0757 (rwxr-xrwx)

 

W pasku adresu przeglądarki wpisujemy:

http://localhost/kickstart.php

 

Kolejne kroki zostały przedstawione na kolejnych obrazkach.

{slimbox

/images/stories/20100116_JoomlaKickstart/640_02_Restore_01.png,

/images/stories/20100116_JoomlaKickstart/200_02_Restore_01.png

}

Obrazek 02. Wciskamy wielki zielony przycisk 'Start'

 

{slimbox

/images/stories/20100116_JoomlaKickstart/640_03_Restore_02.png,

/images/stories/20100116_JoomlaKickstart/200_03_Restore_02.png

}

Obrazek 03.

Rozpoczyna się proces rozpakowywania archiwum .jpa. Nie będę ukrywał, że trwa to dosyć długo. Oczywiście tym dłużej, im większa jest nasza witryna :-) Co jakiś czas wyświetlane wartości są odświeżane, ale niestety nie ma żadnego pasku postępu. Uzbrajamy się w cierpliwość i robimy sobie kawę.

 

{slimbox

/images/stories/20100116_JoomlaKickstart/640_04_Restore_03.png,

/images/stories/20100116_JoomlaKickstart/200_04_Restore_03.png

}

Obrazek 04. Wreszcie proces się kończy. Klikamy na pierwszą linkę 'here'.

 

{slimbox

/images/stories/20100116_JoomlaKickstart/640_05_Restore_04.png,

/images/stories/20100116_JoomlaKickstart/200_05_Restore_04.png

}

Obrazek 05. Krok 1, 'Check'.

Sprawdzamy, czy nasze nastawy pokrywają się z tymi widocznymi na obrazku. Ponieważ przyznaliśmy przed chwilą stosowne prawa do katalogu, w którym znajduje się nasza witryna, więc nie powinno być inaczej.

 


{slimbox

/images/stories/20100116_JoomlaKickstart/640_06_Restore_09.png,

/images/stories/20100116_JoomlaKickstart/200_06_Restore_09.png

}

Obrazek 06. Krok 2, 'DB Restore'.

{slimbox

/images/stories/20100116_JoomlaKickstart/640_07_Restore_10.png,

/images/stories/20100116_JoomlaKickstart/200_07_Restore_10.png

}

Obrazek 07. Pasek postępu.

W polu 'Database server host name' podajemy nazwę naszej witryny. Ponieważ instalujemy kopię witryny na lokalnym komputerze, więc wpisujemy 'localhost'. Jest to domyślna nazwa komputera, na którym mamy zainstalowaną bazę danych.
W polu 'User name' wpisujemy nazwę użytkownika, który ma prawo do zarządzania bazami danych.
  • Jeżeli nasz komputer przygotowaliśmy dla Joomla! zgodnie z tą instrukcją, to śmiało wpisujemy 'root'.
  • Jeżeli stworzyliśmy na potrzeby zarządzania swoją bazą danych Joomla! jakiegoś innego użytkownika, to podajemy jego nazwę.
  • Jeżeli do instalacji środowiska serwerowego posłużył nam XAMPP (2010-04), to śmiało wpisujemy 'root'.

 

W polu 'Password' wpisujemy hasło użytkownika bazy danych.

  • Jeżeli nasz komputer przygotowaliśmy dla Joomla! zgodnie z tą instrukcją, to hasło będzie takie samo, jak hasło administratora, czyli hasło, które podajemy po wywołaniu polecenia 'sudo'.
  • Jeżeli do instalacji środowiska serwerowego posłużył nam XAMPP, to hasło jest puste (2010-04).

 

W polu 'Database name' nie musimy nic wpisywać. Możemy pozostawić to pole bez zmian. Skrypt powinien domyślnie wypełnić to pole nazwą bazy danych Joomla!.

 

Jeżeli wpisaliśmy poprawne dane, to powinniśmy zobaczyć szybko postępujący pasek i informację o powodzeniu, jak na 'Obrazek 7'.

 

Pomijam opis kroku 3, 'Site info', gdyż nie ma on wpływu na dalsze działania i ma charakter przede wszystkim informacyjny.

 

{slimbox

/images/stories/20100116_JoomlaKickstart/640_08_JoomlaPackInstaller4.png,

/images/stories/20100116_JoomlaKickstart/200_08_JoomlaPackInstaller4.png

}

Obrazek 08. Krok 4, 'Finish'.

Informacja o zakończeniu działania instalatora. Możemy teraz zamknąć tę zakładkę przeglądarki. O ile przeglądarką tą jest 'Mozilla Firefox' lub przeglądarka z nią zgodna, to zadziała skrót klawiaturowy 'Ctrl + W'.

 

Wracamy do zakładki widocznej na 'Obrazek 04'. Wybieramy drugą linkę 'here', która posprząta po skrypcie 'kickstart.php', czyli usunie katalog 'installation', zmieni wpisy w pliku '.htaccess' i usunie sam skrypt.

 

{slimbox

/images/stories/20100116_JoomlaKickstart/640_09_JoomlaPackInstaller4_2.png,

/images/stories/20100116_JoomlaKickstart/200_09_JoomlaPackInstaller4_2.png

}

Obrazek 09. Skrypt 'kickstart.php' zakończył swoje działanie.

 

W polu przeglądarki wpisujemy adres:

http://localhost/index.php.

 

Oczom naszym powinna ukazać się strona startowa naszej witryny, uruchomiona po raz pierwszy na komputerze lokalnym. Miłej pracy z Joomla!

Comments (13)
Dla mnie super
13piątek, 04, czerwiec 2010 21:28
Krzysztof
Mam dwie domeny. Na jednej trzymam produkcję, na drugiej testowy. Dotychczas, żeby odtworzyć produkcję na teście musiałem ciągnąć wszystko w tę i we w tę, tam i z powrotem, marnując transfer. Teraz robię backup, przerzucam go między katalogami i odtwarzam.
@Krzysztof
12poniedziałek, 15, marzec 2010 17:56
mslonik
Cóż, w systemie M$ Windows jest jeszcze prościej. Powyższa instrukcja zawiera opis czynności, które należy wykonać w każdym z kroków oraz realizację tych czynności pod konsolą Linuxa. Nic nie stoi na przeszkodzie, by te same czynności wykonać w innym systemie operacyjnym. Nie ma tu nic bardziej skomplikowanego niż rozpakowywanie plików czy zmiana uprawnień. Pozdrawiam.
Windows
11poniedziałek, 15, marzec 2010 09:38
Krzysztof
Opis dotyczy Linuxa. A jak w windowsie
-------
10środa, 17, luty 2010 10:15
jacek
do użytkownika piszącego o łamaniu hasła do joomli... Jeśli ktoś pozna Twoje hasło do ftp to nic nie stoi na przeszkodzie aby w 3 krokach zmienił hasło na swoje bez poznawania Twojego.

Pomysł na stworzenie całej kopii w jednym pliku jest moim zdaniem bardzo wygodny.

Pozdrawiam zwolenników i przeciwników :))
jaki problem z ftpem?
9środa, 10, luty 2010 14:30
Anrew
drodzy specjaliści bojący się bezpieczeństwa ftp. Co stoi na przeszkodzie by ściągnąć ten plik przez scp?
dodatek do powyższego
8czwartek, 04, luty 2010 17:44
Jacek
oczywiście chodzi mi o katalog jooml'i "administrator" na hasło a jak to zrobic poczytajcie np. tu:
http://linux.reu.pl/apache_konfig.html
są prostsze metody np.
7czwartek, 04, luty 2010 17:34
Jacek
niestety nie pochwalam tego sposobu robienia kopii z powodu bardzo prostego, jesli zrobie kopie witryny a intruz przechwyci moje np. haslo do ftp'a to co stoi na przeszkodzie aby od teraz poznac moje haslo admina do jooml'i.
Stawia sobie w zaciszu swojego kompa moja lustrzana kopie witryny produkcyjnej i łamie moje haslo admina poswiecajac na to nawet np. tydzien jesli bedzie zdesperowany i uparty, a nastepnie wchodzi na moja produkcyjna witryne, loguje sie i .... no wiadomo co :)
Najprotsza metoda zabezpiecznia jest wykonywanie kopii plikow i bazy na serwerze, wysylanie jej rsync na inny serwer i najwazniejsze zabezpieczec poprzez apache katalog "administrator" nawet jesli intruz pozna haslo metoda np. sql injection to hasla do otworzenia zaplecza administracyjnego bedzie praktycznie niemożliwe, no bo niby jak ma znac znane tylko mi inne haslo do zaplecza. No chyba ze jakos je wystawimy na świat, ale to eliminuje, chyba nikt nie jest az tak lekkomyślny.
Druga sprawa to wylaczenie wszystkich dodatków i pozostawienia tylko z tych z których korzystamy no i oczywiscie regularna aktualizacja jooml'i jesli pojawia sie patch'e.
Te proste czynnosci sa na tyle skuteczne ze mozna smialo i spokojniej spac. W życiu bym nie wysyłal kopii przez ftp'a gdzie hasło idzie jawnym tekstem.
5+
6poniedziałek, 01, luty 2010 00:52
Revol
Bardzo dobry artykuł. Dziękuję. Każda dziewczyna będzie wdzięczna Autorowi jak jej chłopak zamiast klepać 20min backupy, spędzi ten czas rozsądniej.
Za dużo roboty.
5piątek, 29, styczeń 2010 19:13
Marcin
Według mnie, ten artykuł jest zupełnie nie potrzebny. Ja osobiście kopię robię już za pomocą FTP i backupu bazy danych.
@Halszczak
4wtorek, 26, styczeń 2010 20:20
mslonik
A teraz załóżmy, że adminowi podlega 8 witryn na 8 różnych serwerach. Nadal wydaje mi się, że łatwiej w takim wypadku jest zarządzać 8 plikami i 8 razy wcisnąć guzior. Zwłaszcza, że nie zawsze mamy możliwość uruchomienia własnych skryptów na każdym z serwerów. JoomlaPack ma spore możliwości, o wiele szersze od wymienionych w tym artykule. Pozwala np. na selektywne zrzucanie tabel z bazy, pozwala na automatyczne wykonywanie kopii bezpieczeństwa o zadanej porze itp. itd. Nadal widzę jego przewagę nad 'kilkoma kliknięciami'. I nie chodzi o to, czy admin jest rozgarnięty i 'daje radę', ale o to, jak jest łatwiej i wygodniej. Ale pozdrawiam...
@mslonik
3niedziela, 24, styczeń 2010 21:41
Halszczak
Od dawna robię tak samo jak Procek i nie narzekam, kilka kliknięć, kilka minut (przy w miarę szybkim łączu) i cała kopia ląduje na moim twardzielu, spakowana na dokładkę. W miarę "rozgarnięty" admin potrafi takie coś zrobić w góra 20 minut.
@Procek
2czwartek, 21, styczeń 2010 22:40
mslonik
Warto zainstalować ten dodatek dlatego, że by zrobić backup wystarczy naciśnięcie jednego przycisku, w wyniku czego powstaje słownie jeden plik. Jeden, a nie 8 tys., jak w przypadku mojej witryny. Protokół FTP dobrze nadaje się do przesyłania pojedynczych, dużych plików. Przesłanie 8 tys. plików to około 1 s na negocjacje połączenia na każdy plik, czyli 8 tys. dodatkowych sekund. Ja nie muszę robić zrzutów bazy danych. Nie wiem, jak je robisz, ale to też nieco klikania. Mam to wszystko, pliki plus baza danych w jednym pliku. Twój wybór, bądźmy szczerzy...
Dobry artykuł, ale...
1czwartek, 21, styczeń 2010 13:29
Procek
Ładnie i dokładnie wszystko opisałeś, ale bądźmy szczerzy - prościej i szybciej będzie to zrobić ręcznie niż zapinać pod Joomlę kolejny dodatek, ściągać dodatkowe skrypty i uczyć się tworzenia backupu na nowo... Ja robię kopię bezpieczeństwa mniej/więcej co miesiąc: kopiuję po FTP wszystkie pliki, robię zrzut bazy danych MySQL i gotowe...

Add your comment

Your name:
Your email:
Your website:
Subject:
Comment:
 
Ochrona antyspamowa