Przychodzi taki czas, kiedy mały hosting przestaje wystarczać i czas przenieść się na coś większego. Nie ma problemów, jeżeli wystarczy upgrade’ować pakiet hostingowy na większy u tego samego dostawcy. Poza bólem serca księgowego i pustką w portfelu, nie ma większych strat. Problem pojawia się wtedy, gdy przenosimy się do zupełnie innego dostawcy i zaczynamy korzystać z innych rozwiązań.
O przeprowadzce bloga już wspominałem. Postanowiłem jednak przy okazji postawić go niejako na nowo i pozbyć się różnych śmieci które pozostawały po różnych pluginach, a także połączyć dwa multisite’y w jeden. Miała to być robota na jedno popołudnie (w poniedziałek), ale nadal jestem w trakcie. Przenoszę blog po blogu, usprawniając je i modernizując. Stąd na przykład całkowicie odmieniony mój fotoblog.
Koniec jednak dygresji, bo pojawiło się kilka problemów technicznych, przed którymi trzeba ostrzec. Konfiguracja z jaką przyszło mi się zmagać nie była łatwa sama w sobie
- Ma to być WordPress Multisite
- Serwer jest na home.pl (Business Server 6PRO – obecnie już niedostępny)
- WordPress jest instalowany w podkatalogu
- Używam CloudFlare (w tym momencie zdradzam trochę przyszły temat, ale trudno)
Zachować uptime
Chwila przemyśleń pozwoliła mi na stosowanie dość ciekawej metody pracy
- Eksportuję wpisy do pliku [cci]xml[/cci]
- Edytuję plik [cci]/etc/hosts[/cci] i dopisuję w nim wskazanie domeny którą przenoszę na nowy serwer w home. Dzięki temu mój komputer jako jedyny korzysta z nowego serwera[/cci]
- Konfiguruję bloga i importuję wpisy
- Przestawiam DNSy
Kierujemy domeny
Ustawienie DNSów w Cloudflare jest proste i szybko się propagują. Problemem okazał się panel administracyjny home.pl. Nie pozwala on na przypisanie do podkatalogu (a na tym hostingu stoi więcej stron) domeny, która nie jest obsługiwana przez ichnie DNSy. Dzięki pomocy konsultantów dowiedziałem się jednak, że sprawę da się załatwić przez [cci].htaccess[/cci] w głównym katalogu hostingu. Wpisujemy w nim kod [code]RewriteCond %{HTTP_HOST} ^(www.)?adres.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !/podkatalog/
RewriteRule ^(.*)$ /podkatalog/$1 [L][/code] i możemy instalować wordpressa w podkatalogu.
Instalacja WordPressa
Słynna pięciominutówka. Pamiętajmy o kilku zasadach bezpieczeństwa
- własny prefix tabel
- użytkownika admin to sobie może mieć premier, my wybieramy coś innego
- hasło też musi być mocne. Możesz użyć LastPass do zapamiętywania go.
Konfiguracja Multisite
Na początek, jak instrukcja każe, dodajemy do [cci]wp-config.php[/cci] linijkę [code]define(’WP_ALLOW_MULTISITE’, true);[/code], następnie w narzędziach uruchamiamy instalację sieci. Skopiowałem odpowiednie kawałki kodu do [cci]wp-config.php[/cci] i [cci].htaccess[/cci], ale pojawił się kolejny problem – nie mogłem się zalogować. Usunięcie danych przeglądarki nie pomagało. Rozwiązaniem okazało się dodanie do [cci]wp-config.php[/cci] kolejnych dyrektyw:
[code]define(’ADMIN_COOKIE_PATH’, '/’);
define(’COOKIE_DOMAIN’, ”);
define(’COOKIEPATH’, ”);
define(’SITECOOKIEPATH’, ”);[/code]
Import postów
Podczas WodCampa, Marcin przekonywał mnie, że jest to najlepsza metoda przenoszenia postów. Skorzystałem głównie dlatego, że chciałem bloga odchudzić i… raczej nie będę korzystał z więcej – pozostanę przy zwykłym ręcznym kopiowaniu tabel w bazie. Co się stało?
- przy imporcie zniknęły formularze PayPala z wpisów o wtyczkach
- zniknęły prezentacje z WordCampa osadzone w iframe’ach
- skrypt nie zdążył zaimportować wszystkich załączników, a na home nie mam możliwości przedłużenia [cci]max_execution_time[/cci]
Były to rzeczy, które dało się szybko poprawić ręcznie (naprawdę było to dosłownie kilka grafik), ale nie wiem czy to wszystkie problemy i po prostu temu narzędziu nie ufam.
Problem z kolejnymi blogami
Dodawanie kolejnych witryn miało być szybkie i łatwe. Problemem okazały się załączniki do nich, a raczej ich wyświetlenie. Upload przebiegał bez problemów, ale ścieżki osadzane we wpisach (i stosowane w podglądzie) wydawały się być niewłaściwe. Okazało się, że problem leży nie w ścieżkach, a w pliku [cci].htaccess[/cci]. Ten powinien wyglądać następująco:
[code]# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress[/code]
Czy to koniec problemów
Na razie tak. Udało się przy tym zidentyfikować główny skrypt obciążający procesor serwera – prywatne archiwum twittów (dziwię się, że wcześniej się nie zorientowałem). Jak pojawi się coś więcej, to na pewno napiszę.
szczypek napisał
Niech ci bozia w dzieciach wynagrodzi dobry człowieku 🙂
Mordowałem się parę dni z postawieniem MS na home.pl
WIELKIE piwo ci się należy ode mnie 🙂
Łukasz Jasiński napisał
Cieszę się, że pomogłem. Home jest naprawdę specyficznym hostingiem. Nie chcę być złym prorokiem, ale to może nie być jedyny problem jaki napotkasz.
szczypek napisał
Też się o to martwię szczególnie ze muszę na MS zrobić kilkanaście małych stronek i do tego przenieść dość dużą stronę z innego serwa 🙂 A zmiana serwera niestety nie jest możliwa. Wszystko wyjdzie w praniu 🙂
Jeszcze raz dzięki, uratowałeś mi życie i zaoszczędziłeś sporo czasu na dalsze poszukiwania 😉