Upgrade systemu eZ Publish
Częstym problemem przed jakim stają developerzy jest upgrade systemu eZ Publish. O ile od wersji 2011.x i comiesięcznych cyklach wydawniczych tego systemu upgrade jest stosunkowo prostym zabiegiem, to dużo pytań powstaje względem wcześniejszych wersji tego systemu.
W artykule opiszę w jaki sposób dokonać upgread'u systemu z wersji 4.3 do wersji 2011.10. Proces upgread'u składać się będzie z kilku kroków, a w zasadzie to z paru upgread'ów.
Nie jest możliwy upgrade wersji 4.3 od razu do wersji 2011.10 ale jest możliwy upgrade od razu do wersji 4.6. Nie trzeba zatem przechodzić kroków upgread'u z każdej wersji 4.x do 4.y - przejdziemy od razu do ostatniej wersji 4.y.
Oczywiście przed dokonanie procesu upgread'u, wskazane jest wykonanie pełnego backupu naszego serwisu :)
Upgreade eZ Publish z wersji 4.3 do 4.6
Proces upgread'u składa się z kilku kroków:
- Aktualizacja plików instalacji systemu
- Aktualizacja rozszerzeń
- Aktualizacja bazy danych
- Regeneracja tablicy autoload
- Uruchomienie skryptów aktualizujących
- Wyczyszczenie cache
Dokonując upgread'u należy się upewnić, że serwer, na którym będzie działać eZ Publish spełnia wszystkie wymagania, jakie są stawiane dla CMSa. eZ Publish w wersji 4.6 jest kompatybilne z PHP w wersji 5.2.1 i wyższych oraz wymaga eZ Components. Więcej o wymaganiach znajdziesz na stronie http://ez.no/eZPublish/Requirements
Częste pytanie - gdzie jest eZ Publish w wersji 4.6? Zgodnie z opisem http://share.ez.no/community-project/release-policy, rozdzielenie eZ Publish na dwa modele (darmowa i płatna) nastąpiło z wersją 4.5.,a wersją 4.6 w darmowym modelu jest to już wersja 2011.7 (wersja community). Możemy traktować wersję 2011.7 jako wersję 4.6 :)
Zacznijmy pracę :)
Krok 1 - Aktualizacja plików
Najprostszą metodą aktualizacji plików jest rozpakowanie instalacji w wersji 4.6 do osobnego folderu i przekopiowanie naszych plików (z naszymi ustawieniami itp.) do nowej instalacji. Upewnij się, że uwzględniasz wszystkie wymagane pliki:
- design/example
- design/example_admin
- var
- settings/siteaccess
- settings/override
- (index_cluster.php)
Należy traktować "example" oraz "example_admin" jako swoje aktualne nazwy swoich siteaccessów.
Po przekopiowaniu plików należy ustawić dla nich uprawnienia (wybierając jedną z dwóch metod):
Z poziomu Shell'a komenda:
chmod -R a+rwx design extension settings var
Lub komenda:
Zmień 'nouser' na użytkownika Twojego serwera http.
chmod -R og+rwx design extension settings var chown -R nouser:nouser design extension settings var
Krok 2 - Aktualizacja rozszerzeń
Jeżeli używasz własnych rozszerzeń, należy je przekopiować do katalogu /extension
Uwaga - nie należy nadpisywać rozszerzeń systemowych, których najnowsza wersja jest w naszej nowej instalacji, np. eZ Online Editor, eZ OpenOffice Document format, eZ JSCore itp.
Dla rozszerzeń eZ Flow oraz eZ Website Interface należy wykonać dedykowany upgrade tych rozszerzeń.
Dla rozszerzenia eZ Online Editor 5.x oraz eZ JS Core należy zamienić reguły rewrite rules (w przypadku korzystania z Virtual Hosts):
RewriteRule ^/var/cache/texttoimage/.* - [L] RewriteRule ^/var/[^/]+/cache/(texttoimage|public)/.* - [L]
z:
RewriteRule ^/var/([^/]+/)?cache/(texttoimage|public)/.* - [L]
Krok 3 - updateimagesystem.php
Skrypt jest konieczny do wykonania wyłącznie jeżeli używasz w swojej instalacji atrybutu typu "ezimage" z wersji systemu wcześniejszej niż 3.3.
Jeżeli aktualizacja systemu następuje z wersji nowszej, można ten krok pominąć. W przeciwnym razie wykonać należy skrypt:
php update/common/scripts/4.1/updateimagesystem.php -s $SITE_ACCESS
Krok 4 - aktualizacja bazy danych
Aktualizacji bazy danych należy dokonać krokowo, przechodząc przez kolejne wersje systemu. Pliku aktualizacji znajdują się w lokalizacji
/update/database/<mysql|postgresql>/4.4/dbupdate-4.3.0-to-4.4.0.sql /update/database/<mysql|postgresql>/4.5/dbupdate-4.4.0-to-4.5.0.sql /update/database/<mysql|postgresql>/4.6/dbupdate-4.5.0-to-4.6.0.sql
Pliki można wczytać zarówno poprzez phpMyAdmin jak i poprzez inną dowolną aplikację, której używasz to zarządzania bazami danych.
Krok 5 - regeneracja tablicy autoload dla rozszerzeń
System autoload również posiada kilka zmian, np. tablica autoload dla rozszerzeń jest obecnie w lokalizacji var/autoload
Aby zregenerować tablicę wywołaj polecenie:
php bin/php/ezpgenerateautoloads.php --extension
Krok 6: Uruchomienie skryptów upgread'ujących
Z wersji 4.3 do 4.4
Skrypt aktualizacji w tej wersji posiada bug, który został poprawiony w skrypcie aktualizującym z wersji 4.4 do 4.5.
Z wersji 4.4 do 4.5
Dla eZ Publish 4.4, które było aktualizowane z wersji 4.3, uruchom polecenie (podając nazwę siteaccessa):
php update/common/scripts/4.5/updatesectionidentifier.php -s $SITE_ACCESSUwaga: Pomiń ten krok, jeżeli Twoja instalacja w wersji 4.4 nie jest upgreadowana z wersji 4.3.
Z wersji 4.5 do 4.6
Dla eZ Publish 4.4, które było aktualizowane z wersji 4.3, uruchom polecenie (podając nazwę siteaccessa):
php update/common/scripts/4.6/updatesectionidentifier.php -s $SITE_ACCESSUwaga: Pomiń ten krok, jeżeli Twoja instalacja w wersji 4.4 nie jest upgreadowana z wersji 4.3.
Krok 7: Włącz rozszerzenie ezjscore
Kilka nowych rozszerzeń oraz design'y admin2 wymagają aktywnego rozszerzenia ezjscore. Upewnij się, że jest ono aktywne: "settings/override/site.ini.append.php"
[ExtensionSettings] ActiveExtensions[] ActiveExtensions[]=ezjscore
Krok 8: Włącz nowy design admin2 dla Panelu adminsitracyjnego
Aby włączyć nowy wygląd Panelu administracyjnego, w pliku site.ini siteaccessu administracyjnego włącz nowy design.
To enable admin2 open "site.ini" for your admin site access. For an eZ Flow site this would for instance be:
settings/siteaccess/admin/site.ini.append.php
Do tablicy zadeklarowanych design'ów w sekcji [DesignSettings] dodaj opcję "admin2". Zatem pierwotny zapis:
[DesignSettings] SiteDesign=admin AdditionalSiteDesignList[]=ezflow
zostanie zmieniony na:
[DesignSettings] SiteDesign=admin2 AdditionalSiteDesignList[]=admin AdditionalSiteDesignList[]=ezflow
Aby włączyć użytkownikom Panelu administracyjnego możliwość zmiany preferencji (Lokalizację oraz Ponowną edycję), należy dodać linię w sekcji [Toolbar_admin_right] pliku settings/siteaccess/<siteaccess_name>/toolbar.ini.append.php:
Tool[]=admin_preferences
A cały blok będzie wówczas wyglądać:
[Toolbar_admin_right] Tool[] Tool[]=admin_current_user Tool[]=admin_bookmarks Tool[]=admin_preferences
Step 9: Wyczyść cache aplikacji
Aby wszystkie zmiany były poprawnie widoczne przez aplikację, należy wyczyścić cały cache. Z poziomu root'a instalacji należy wykonać polecenie:
php bin/php/ezcache.php --clear-all --purge
Opcja --purge fizycznie usuwa fizycznie pliki cach'u. Bez tej opcji, cache aplikacji będzie uznany jako "wygasły" ale nie zostanie usunięty.
Czasami z uwagi na ustawienia praw dostępu do plików serwera, skrypt nie jest w stanie usunąć plików cache. W tym miejscu warto sprawdzić, czy na pewno cały cache został usunięty. W tym celu należy sprawdzić zawartość katalogów cache w folderze var. Jeżeli jakiekolwiek pliki pozostały, należ je usunąć.
Step 10: Upgrade rozszerzeń
Jeżeli używasz rozszerzeń eZ Webin lub eZ Flow, to rozszerzenia również powinny zostać zaktualizowane.
Upgreade eZ Publish z wersji 4.6 do 2011.10
W trakcie przygotowania :)

