33
Cześć!

Migracja z Drupal 6 PressFlow do WordPress 4

Embed Size (px)

Citation preview

Cześć!

Migracja Drupal WordPress

2.0 3.0

14 letni vortalu z branży muzycznej

Do migracji ponad 25.000 kont użytkowników,

którzy na przestrzeni dekady stworzyli

ponad 500.000 różnego rodzaju tekstów z

10GB załączników

Drupal 6 PressFlow (28 typów treści, moduł CCK oraz pluginy) 8x 3,4 GHz Xeon + 32GB RAM + Raid 5 z SSD

Dlaczego migracja? BB -> Drupal 5 -> Drupal 6 ->Press Flow

Przestarzała taksonomia

Utrzymanie strony Ogranicza

użytkowników

Web 2.0

SPAM

2

Facebook Twitter Pinterest

Możliwość rozwoju: Personalizacja + APP

Microblog Wall / Stream Groups Like / Pin Share / Retweet Comment

Profile Frending Notifications …

Przed migracją

Server Headers HSTS CSP CRC Proxy cache (cache przeglądarek)

DNS TTL proxy (CloudFlare) Google Flush Cache subdomeny CNAME np. Google

inne AppCache Pixel remarketingowy Listy IP spamerów SiteMap

HeidiSQL

ssh

Środowisko

Stary Nowy

Jeśli nie ma funduszy na dwa równoległe wirtualizuj.

Stary potem przejmie 301

Obecny Load Wąskie gardła

NIE kopiuj na Windows

Drupal do WordPress

MySQL MySQL

Możliwości

My potrzebujemy

Oczyścić treść z [BB], js, html, wulgaryzmów

IP proxy, IP TOR, IP spamerów, słownictwo, wg: maila, ilości postów, tekst/linków, domeny

Nowe typy, taksonomia = nowe URI - pod 301

Filtry

On Line

Treści

SPAM

Zmieścić się w „okienku”

Ilość wpisów, Taksonomia, CP, id

Angażuje 2 silniki PHP pełna kontrola, id

MySQL

Szybkie Tracimy kontrolę, sync

Możliwości

Dlatego wybraliśmy

MySQL PHP WordPress

Ciężka obróbka w MySQL Import przez funkcje WP

CMS do CMS

MySQL

CREATE TABLE `tresci` ( SELECT `kolumny` FROM `node` LEFT JOIN `node_revisions` … ON `node`.`nid` = `node_revisions`.`nid` ) ;

UPDATE `tabela` SET `kolumna1` = REPLACE ( `gdzieszuka`, ‘co’,

‘naco’) WHERE `kolumna2` LIKE '%szukana%'; TRIM() CHAR_LENGHT() LOWER()

MySQL workbench

Nid Node Cid Comments Uid Users Fid Files Tid Taxonomy … …

MySQL różnice są tylko w formie przechowywania

Nid Node_* -> Posty +meta Cid Comments_*-> Komentarze Uid Users_* -> Użytkownicy Fid Files_* -> Załączniki Tid Taxonomy_* -> Kategorie / Tagi … …

users_* user_* *_user *_users

WordPress

CODEX

DEBUG BAR define('WP_DEBUG', true);

wp-config.php

include(wp-blog-header.php)

$nowy_ID = wp_insert_post( $post, $e);

$post = array( FORM ) $nowy_ID przyda się do - załączniki - komentarze - 301

$form = array( 'user_login' => 'login_name', 'user_url' => $website, 'user_pass' => NULL //wp_generate_password();

); $user_id = wp_insert_user( $form ) ; if( !is_wp_error($user_id) ) { Zapisz nowe ID : $user_id; Wyślij maila z hasłem }

Wyjątkiem jest BuddyPress

Avatary trzeba przekopiować do

/wp-content/uploads/avatars/ID-użytkownika/dowolna-nazwa-bpthumb.jpg /wp-content/uploads/avatars/ID-użytkownika/dowolna-nazwa-bpfull.jpg PHP copy(‘skąd_kopiować/x.jpg', ‘nowa-lokalizacja/i-nazwa-bpfull.jpg');

Przygotuj się na https://en.wikipedia.org/wiki/Early_adopter

20 20

60

20% Innowatorzy Early Adopters

20% Przeciwnicy zmian

60% Obserwatorzy

Punkt krytyczny

Przygotowania Migracja BETA

Publikacja Nauka Edukowanie

Ulepszanie

Strategia wdrażania zmian prawa Murphiego

Listy ReMarketingowe

HSTS DNS TTL

Komentarze

ReIndeksacja strony

Reindeksacja

Zablokuj np. Yandex, BING, SentiOne, …

Rozbij indeksację na etapy

Przekieruj ruch – 3 dni z Varnish?

Tylko kluczowe dla biznesu BOTY

Obciążenie serwera

HTML IMG Video

X-Robots-Tag

Osobny host na 301