W życiu każdego użytkownika Wordpressa jest taki moment gdy należy zmigrować ze starego na nowy serwer. Mnie to spotkało, tym razem miałem drobne zlecenie: przenieść katalog z wordpressem z jednego na drugi serwer, skonfigurować, przetestować i przepiąć domenę. Sporo pracy, ale mając do dyspozycji SSH na zdalnym serwerze, możemy zrobić dużo więcej bez pomocy z zewnątrz jak choćby helpdesku hostingodawcy. Trudne? Bynajmniej.
SFTP bezpieczne!
O tym, że protokół ftp jest zbyt dziurawy, podatny na ataki z zewnątrz, nie muszę pisać. Dlatego cieszy mnie, że coraz więcej firm zajmujących się hostingiem / vps, daje dostęp do shella i umożliwia korzystanie z protokołu sftp. Przy czym należy podkreślić, że środowisko shellowe w ofertach poza VPS będzie zawsze w sporym stopniu ograniczone.
Dump ze starej do nowej bazy danych
Logujemy się via ssh do starego serwera i poprzez łączenie z mysql robimy export bazy danych, następnie przerzucamy na drugi serwer i ładujemy zawartość do nowej bazy danych (którą wczesniej rzecz jasna utworzyliśmy)
$ mysqldump -u username -p DATA-BASE-NAME > dump.sql $ scp dump.sql login@serwer_nr_2:/sciezka/do/katalogu/docelowego $ mysql -u username1 -p DATA-BASE-NAME < dump.sql
Jeśli nazwa użytkownika i hasło jest różne, należy zmiany te wprowadzić w wp-config:
define(‘DB_USER’, ‘username1’); define(‘DB_PASSWORD’, ‘password1’);
Więcej informacji tradycyjnie na Codex WP ↗
Przeniesienie z jednego do drugiego serwera
Katalog z wordpressem możemy przenieść na dwa sposoby: spakować do archiwum bądź przesłać wszystko w locie.
Należy połączyc się via ssh z serwerem nr 1, pakujemy do ZIPa:
$ zip -r wordpress.zip /wordpress
Następnie za pomocą polecenia scp przesyłamy katalog do drugiego serwera:
$ scp /wordpress login@serwer_nr_2:/sciezka/do/katalogu/docelowego
Analogicznie można przesłać ZIPa:
$ scp wordpress.zip login@serwer_nr_2:/sciezka/do/katalogu/docelowego
Wówczas na drugim serwerze należy przy użyciu polecenia rozpakować poleceniem unzip:
$ unzip wordpress.zip
Z uwagi na różnorodne konfiguracje środowisk shellowych na serwerach, warto pamiętać, że można skorzystać z dostępnej pomocy:
$ scp —help $ man scp
Skoro pliki zostały przeniesione (i rozpakowane), należy zadbać o odpowiednie uprawnienia dla plików:
- pliki: 644
- foldery: 755
Więcej informacji znajdziecie na tej stronie Codex WP ↗.
Problemy z uprawnieniami
Może sie zdarzyć, że przy instalacji / aktualizacji pluginów Wordpress poprosi o wpisanie danych FTP. Przy pojedynczych pluginach, problemu raczej nie będzie, za to gorzej z aktualizacjami samego Wordpressa. Wówczas występują problemy z dostępem do tymczasowych katalogów, ba nawet nie można w locie edytować plików z poziomu edytora wordpressowego. Dlaczego tak się dzieje, wytłumaczył MatiPL ↗:
Wordpress podczas sprawdzania możliwości aktualizacji analizuje prawa dostępu do poszczególnych plików w ramach systemu blogowego. Jeśli serwer WWW ma odpowiednie prawa zapisu (niestety nie wystarczy tylko dla wp-content :/) robi aktualizacje automatycznie. W innym wypadku prosi o dane do logowanie.
Rozwiązanie jest bardzo proste i rozwiązujemy jednym poleceniem:
chmod a+w -R /wordpress
Zamiast FTP, SFTP
Jeśli nie mamy ftp’a ( ze względu bezpieczeństwa), możemy skonfigurować Wordpressa tak, by korzystał z konta sftp. Edytujemy plik wp_config.php:
define(‘FS_METHOD’, ‘direct’); define(‘FTP_BASE’, ‘/home/user/public_html/wordpress/’); // sciezka do katalogu z wordpressem define(‘FTP_CONTENT_DIR’, ‘/home/user/public_html/wp-content/wordpress/’); define(‘FTP_PLUGIN_DIR ’, ‘/home/user/public_html/wordpress/wp-content/plugins/’); #define(‘FTP_PUBKEY’, ‘/home/user/.ssh/id_rsa.pub’); #define(‘FTP_PRIKEY’, ‘/home/user/.ssh/id_rsa’); define(‘FTP_PASS’, ‘your-password’); define(‘FTP_USER’, ‘username’); define(‘FTP_HOST’, ‘your-domain.com:22’);
Zatrzymamy się przy haśle - możemy wygenerować klucz dla WP, ale też podać hasło do ssh - co wybierzesz, zależy od Ciebie.
Najlepsze rozwiązanie?
Jest też druga metoda, polegająca na instalacji od nowa wordpressa, konfiguracji od nowa i przerzuceniu zawartości za pomocą WP importera. To jest dobre rozwiązanie ale do pewnego stopnia - jeśli mamy stosunkowo małą bazę danych, mało opcji do ustawiania. W przeciwnym razie, mogą być problemy, nawet jeśli zrobisz odpowiednia optymalizację plików czy bazy danych.
Twój wybór.
Powyższą notatkę sporządziłem dla siebie, żeby nie szukać za daleko. Jak widać, nie jest to skomplikowane, ale czasem o prostych rzeczach człowiek najzwyczajniej zapomina. W koncu tak często się nie migruje miedzy serwerami.
Na pewno przyda się nowym klientom, którzy chcą się przenieść do zenbox.pl ↗ - maja konkurencyjną ofertę dla wymagających
Źródła: