Do dziś aktualizując WordPressa korzystałem z wbudowanego mechanizmu tego skryptu. Z poziomu panelu administracyjnego, a dokładniej za pomocą poniższego odnośnika
http://nasz.blog.pl/wp-admin/update-core.php
możliwe jest dokonanie aktualizacji skryptu, oraz jego komponentów do najnowszych wersji. Prosto i przyjemnie (nie ulega bowiem wątpliwości, że rozwiązanie to jest bardzo szybkie i niezwykle proste). Jednakże posiada pewną wadę. Albowiem skrypt po aktualizacji do nowszej wersji nie usuwa pozostałości po poprzedniej, starszej wersji. Dla przykładu: stara wersja, przed aktualizacją posiadała plik xxx.php, który w nowszej został usunięty, bo twórcy wyszli z założenia, że jest zbędny, a jego funkcjonalność dodali do pliku yyy.php. Co zatem dzieje się po aktualizacji ze zbędnym plikiem xxx.php? Ano nic. On tam sobie siedzi dalej, potulnie jak myszka i czeka. Czeka tak sobie… Nawet i kilka lat, sam nie wie po co, ale sobie czeka, aż kiedyś sami go usuniemy.
Ktoś mądry [1]I to na polskim kanale wsparcia WordPressa. wskazał mi nową drogę. Dzięki niej w końcu rozwiązany został problem pozostałości po aktualizacji WordPressa, bowiem pliki nadpisywane są do najnowszej wersji, a te zbędne same mówią „pa, pa„. Na dodatek nie trzeba odprawiać jakiś specjalnych modlitw, czy innych obrządków, by to wszystko miało miejsce!
Instalacja SVN
Instalacja jest niezwykle prosta, potrzebujemy zainstalować jeden program do obsługi {{SVN}}. CentOS w swoich podstawowych repozytoriach nie posiada [2]Prawdopodobnie. Ja bowiem skorzystałem z repozytoriów RPMForge interesującej nas aplikacji. Dodajemy zatem repozytoria RPMForge (jak tego dokonać dowiesz się z wpisu Migracja na VPS – problemy z nią związane), w których znajduje się odpowiednia aplikacja i wykonujemy polecenie:
yum install subversion
Czysta instalacja WordPressa
Sprawa prosta o tyle, o ile nie musimy kombinować z istniejącymi już wcześniej plikami. Potrzebujemy wiedzieć gdzie pobrać/zainstalować pliki, oraz… nie. Tylko to potrzebujemy wiedzieć :). Jak zatem dokonać magii?!
mkdir blog
cd blog
svn co http://core.svn.wordpress.org/tags/3.4.2 .
Teraz robi się magia, pliki są pobierane. Opisując kolejno wykonane czynności:
- Tworzymy katalog o nazwie „blog”;
- Przechodzimy do katalogu „blog”;
- Dokonujemy magii pobierając wszystkie pliki WordPressa w wersji 3.4.2 [3]Dla innych wersji – starszych, lub nowszych wystarczy po prostu zmienić numerki..
Kolejnymi krokami jest po prostu instalacja skryptu.
Aktualizacja istniejącej instalacji
Jeśli aktualizujemy skrypt, który zainstalowany został za pomocą powyższego opisu – to ok. Wystarczy tylko i wyłącznie wykonać polecenie:
cd blog
svn sw http://core.svn.wordpress.org/tags/3.4.3 .
Jak widzimy „co” zostało zastąpione „sw” i zmienił się tylko numerek na końcu [4]Na chwilę obecną wersja 3.4.3 nie została jeszcze wydana, więc niech nikt nie pyta dlaczego nie działa..
W przypadku istniejącej już wcześniej instalacji skryptu, który nie został pobrany/zainstalowany za pomocą {{SVN}} jest nieco gorzej. Musimy usunąć niemal wszystkie pliki, by móc je potem pobrać za pomocą {{SVN}}. Do wywalenia idzie praktycznie wszystko za wyjątkiem katalogu wp-content, oraz plików .htaccess i wp-config.php.
cd /katalog/z/blogiem
rm -rf index.php license.txt readme.html wp-activate.php wp-admin/ wp-app.php wp-blog-header.php wp-comments-post.php wp-config-sample.php wp-cron.php wp-includes/ wp-links-opml.php wp-load.php wp-login.php wp-mail.php wp-settings.php wp-signup.php wp-trackback.php xmlrpc.php
Następnie pobieramy wszystkie pliki – ważne jednak by były to plikitej samej wersji, która już była na serwerze.
cd /katalog/z/blogiem
svn co http://core.svn.wordpress.org/tags/3.4.3 .
Późniejszej aktualizacji skryptu dokonujemy w ten sam sposób, co opisane zostało wyżej (svn sw…).
Pomocna dłoń
Na zakończenie pragnę ujawnić tożsamość tej mądrej głowy, która w sprawach związanych z WordPressem bywa niezastąpiona: Marcin Pietrzak znany również jako „illi” na polskim kanale wsparcia tego skryptu (#wordpress-pl @ irc.freenode.net).
Wyjaśnienia
↑1 | I to na polskim kanale wsparcia WordPressa. |
---|---|
↑2 | Prawdopodobnie. Ja bowiem skorzystałem z repozytoriów RPMForge |
↑3 | Dla innych wersji – starszych, lub nowszych wystarczy po prostu zmienić numerki. |
↑4 | Na chwilę obecną wersja 3.4.3 nie została jeszcze wydana, więc niech nikt nie pyta dlaczego nie działa. |
A jak to działa z własnymi modyfikacjami np szablonów?
Zależy. Generalnie nie należy modyfikować rzeczy z repo, czyli motywów twenty*, wtyczki akismet i hello.php. Jeżeli natomiast zmodyfikujesz coś z repo, to jest 50/50 – popsuje się, bo zmodyfikowałeś tak, że nałożyłeś zmiany z tymi z repo, pliki wywalą konflikt i serwis na 99% przestanie działać lub nastąpi merge bez konfliktów i lokalne zmiany zostaną bez z mian, a plik zostanie zaktualizowany.
Jeżeli chodzi o plik spoza repo, to są one dla subversion „nieznane”, więc przy aktualizacji są ignorowane.
Nie strasz nawet, że 50% szans jest ;). W przypadku update z poziomu panelu admina również modyfikacje twenty*, akismeta, oraz plików core były nadpisywane. Nie dziwi mnie więc, że z poziomu SVN jest tak samo. Najważniejsze, że nie rusza naszych pluginów i „themsów”.