Instalacja i aktualizacja WordPressa z SVN

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ądry1 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

Ok. Nim przejdziesz dalej, drogi czytelniku, pragnę cię uprzedzić. Jeśli twój serwer nie posiada dostępu do SSH, to ten wpis z pewnością nie jest dla ciebie. Rozwiązanie to jest dedykowane osobom z własnym serwerem/VPSem, lub hostingiem dzielonym z dostępem do SSH i odpowiednich aplikacji.

Instalacja jest niezwykle prosta, potrzebujemy zainstalować jeden program do obsługi SVN. CentOS w swoich podstawowych repozytoriach nie posiada2 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?!

1
2
3
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:

  1. Tworzymy katalog o nazwie „blog”;
  2. Przechodzimy do katalogu „blog”;
  3. Dokonujemy magii pobierając wszystkie pliki WordPressa w wersji 3.4.23.

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:

1
2
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ńcu4.

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.

Pragnę zwrócić uwagę, że usuwasz pliki na własną odpowiedzialność. Informacja o usunięciu wszystkich plików, za wyjątkiem katalogu wp-content oraz plików .htaccess i wp-config.php dotyczy czystej wersji skryptu, zaraz po instalacji. Jeśli posiadasz zmodyfikowaną wersję to dobrze przemyśl swoją decyzję nim usuniesz pliki, albo najlepiej zrób kopię zapasową!
1
2
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.

1
2
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).


  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. []
Ten wpis został opublikowany w kategorii Blog, Linux, Techniczne i oznaczony tagami , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

3 odpowiedzi na „Instalacja i aktualizacja WordPressa z SVN

  1. SpeX pisze:

    A jak to działa z własnymi modyfikacjami np szablonów?

    • Marcin pisze:

      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.

      • inzaghi89 pisze:

        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”.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*