środa, 25 stycznia 2012

Aktualizacja Joomla z 1.7 do 2.5

Normalna procedura aktualizacyjna z wersji 1.7.* do 2.5 przewiduje wykonanie kopii plików strony oraz bazy, a następnie wejście w Panelu Administracyjnym Joomli do Extension Manager (Menedżera Rozszerzeń) i kliknięcie na zakładkę Update (Aktualizacje).

Powinna być tam widoczna aktualizacja, jak na poniższym screenie.

Extension Manager z widoczną dostępną aktualizacją Joomli do wersji 2.5
Extension Manager z widoczną dostępną aktualizacją Joomli do wersji 2.5
Jeżeli jej nie ma, to klikamy Purge Cache i Find Updates  i cieszymy się dostępną aktualizacją. Zafajkowujemy ją i klikamy Update (Aktualizuj). Proces aktualizacji trwa około 1-2 minut w zależności od posiadanego łącza i serwera. Po zakończeniu procedury aktualizacji zostanie nam wyświetlony komunikat o poprawności przeprowadzonej aktualizacji lub błędach.

Tyle jeżeli chodzi o teorię i sytuacje idealne.

Moja Joomla stoi na Synology 1511+ no i niestety nie wszystko przebiegło poprawnie. Okazało się, że ścieżka open_basedir nie obejmuje lokalizacji w której znajdują się pliki Joomli. W takim razie logicznym wydaje się, dodanie ścieżki wskazanej w błędach aktualizacji do open_basedir i powinno banglać. Tak się niestety nie stało. Błędy dalej wyskakiwały.

Skoro tak, to należało wziąć coś na uspokojenie :) i wykonać aktualizację metodą alternatywną.

Pobieramy pakiet aktualizacyjny i rozpakowujemy go.
Edytujemy pliki *.sql znajdujące się w Joomla_2.5.0-Stable-Update_Package\administrator\components\com_admin\sql\updates\mysql i zmieniamy w nich prefiks wymienianych tam tabel z #__ (czyli np. #__modules, lub #__categories) na prefiks używany w tabelach naszej bazy.
Jak sprawdzić jaki prefiks używany jest w tabelach naszej bazy?
Można tego dokonać np. poprzez zalogowanie się do serwera MySQL i looknięcie na tabele w bazie joomla. Jeżeli nie wiemy jak tego dokonać możemy go ustalić poprzez wyświetlenie zawartości pliku configuration.php znajdującego się w głównym folderze Joomla i wyszukanie parametru dla zmiennej dbprefix, lub poprzez Panel Administracyjny Joomli > Site > System Information i zakładka Configuration File.
Posiadając już wiedzę na temat prefiksu w naszej bazie możemy zamienić #__ (krzyżyk i dwa podkreślniki) na prefiks_ (czyli prefiks i jeden podkreślnik) we wszystkich plikach *.sql w podanej wcześniej lokalizacji. Do wykonania wymienionej zamiany polecam program Notepad++ i wbudowaną funkcję Szukaj w plikach. Jak to działa? Otwieramy Notepad++, klikamy Ctrl+Shift+F i wypełniamy jak poniżej.
Szukanie i zamiana danych w plikach przy użyciu Notepad++
Szukanie i zamiana danych w plikach przy użyciu Notepad++
W polu Szukany tekst wpisujemy #__
W polu Zamień na: wpisujemy prefiks, który mają posiadać nasze tabele
W polu Filtry: nie zmieniamy nic
W polu Katalog: wskazujemy ścieżkę do plików sql w pobranej aktualizacji.
Reszty nie zmieniamy i dajemy Zamień w plikach.
Tym oto automagicznym sposobem we wszystkich plikach *.sql osiągnęliśmy poprawne nazwy naszych tabel.

Teraz należy zalogować się do serwera MySQL, wybrać bazę danych joomla i zaczytać wszystkie pliki sql lub, jeżeli pracujemy poprzez phpMyAdmina, przekleić ich zawartość do okna SQL i wykonać.

W ten sposób mamy zaktualizowaną bazę danych.

Aktualizacja plików strony jest jeszcze prostsza, polega bowiem na skopiowaniu całości aktualizacji do folderu z zainstalowaną Joomlą i nadpisaniu jego zawartości.

Na koniec weryfikacja poprawność aktualizacji poprzez zalogowanie się do Panelu Administracyjnego > Site i System Information.
Wersja zainstalowanej Joomli.
Wersja zainstalowanej Joomli.

W przypadku posiadania języka polskiego w Panelu Administracyjnym, mogą się pojawić niezłe kwiatki po aktualizacji. Wynika to z tego, że aktualizacja może dodawać nowe funkcje, których tłumaczenie nie obejmowało. Wtedy wystarczy przełączyć język polski na angielski w menu Rozszerzenia > Menedżer języków zakładka Zainstalowane Administrator (czy jakoś tak) i powinno być ok - tyle, że po angielsku :)

Brak komentarzy:

Prześlij komentarz

Bardzo proszę o zachowanie netykiety.