Migratie (WordPress)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Hoe migreer je een bestaande WordPress-site naar een andere locatie? Bv. van ontwikkelomgeving naar productie-omgeving? Kan dit mbv. de CLI?

Wat ik meestal zoek

  • Maak een databasedump in de root van de installatie
  • Kopiëer alle bestanden naar de doellocatie
  • Importeer de database
  • Werk database-string bij in wp-config.php
  • wp search-replace oudeurl nieuweurl - Wellicht wat destructief, maar bevalt juist daarom zo goed
  • Browser: Wis afgelopen uur
  • Databasedump verwijderen uit root van de installatie.

Extra

  • Instellingen UpdraftPlus bijwerken?
  • https configureren?

Inventaris

  • WordPress kent iets dat WXR-bestanden heet. Daar heb je oa. een plugin voor, en bijbehorende wp cli-commando's. Maar dit betreft vermoedelijk de migratie van content, en niet van complete sites. [1], [2]
  • De Codex-hoofdpagina lijkt te suggereren dat je nooit vanuit WordPress zelf een db-backup kunt maken, maar dat je dat altijd extern moet doen [3]
  • Het lijkt erop, dat dit voornamelijk handwerk is [4]
  • Duplicator is een migratie-plugin. Ziet er indrukwekkend uit.

Migratie & CLI

Dit artikel laat zien dat gemakkelijk kan via bash. In het voorbeeld hieronder migreer ik example.com van de ontwikkelomgeving (=mijn laptop) naar een VPS.

Bronlocatie

cd /var/www/example.com

# db-export
###########
#
mysqldump <db_name> > export_bestand.sql

# Kopiëer naar VPS
##################
#
# Inpakken is niet nodig: Het gaat snel genoeg. "in1" is een map voor binnenkomende bestanden
#
scp -r * vps12:in1         

Doellocatie

  • Domeinnaam aanmaken
  • Database aanmaken
  • cd /var/www/example.com
  • mv ~in1/* .
  • mysql example_database < db_dump.sql
  • Nieuwe database-credentials invoeren in wp-config.php
  • Search-&-replace - Test: wp search-replace example.com newexample.com --dry-run
  • Search-&-replace - Echt: wp search-replace example.com newexample.com
  • SQL-bestanden opruimen in ~/in1 en example.com
  • Maprechten bijwerken?

Gebruikerslocatie

Cash legen. Op Firefox kan dat met de toetscombinatie Ctrl-Shift-Del.

Migratie van https naar http

Wanneer ik een site verhuis van productie- naar ontwikkelomgeving, houdt dat vaak ook een verhuizing van https naar http in. Het lijkt erop, dat de procedure precies hetzelfde is.

Storingen db-import

Oorzaak: Server-versie = 5.5, werstation-versie = 5.7. Zie Upgrade MySQL voor de oplossing.

Archiefbestand in gebruik nemen - Een lijstje

Dit betreft een situatie waarin ik een backup van een site kreeg als een archiefbestand, inclusief een backup van de databae.

  • Db-connection string aanpassen in wp-config.php
  • Variabelen WP_HOME en WP_SITEURL aanpassen in wp-config.php:
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
  • Inloggen in admin-account
  • .htaccess-bestanden aanpassen?
  • Browsercache legen ivm. eventuele redirects!!!

Een lijstje dat ik van iemand kreeg:

  • database inladen
  • aanpassen van wp-config file naar je lokale database
  • database strings aanpassen naar je lokale url
  • inloggen
  • permalinks Resetten. Kwestie van gewoon een keer de permalinks instellingen opslaan.
  • daarna zou je de taal van wordpress kunnen aanpassen.

... Wordt vervolgd.

Casus: Archiefbestand in gebruik nemen (maart 2017)

  • Bestanden & database verplaatst
  • wp-config.php: db-string, wp_home & wp_siteurl aangepast
  • Ingelogd in wp-admin
  • Permalinks paar keer ververst (Settings » Permalinks) - Ze stonden al goed
  • Browsercache geleegd - Dit bleek cruciaal te zijn
  • Site bezocht - Klaar.

Casus: Archiefbestand in gebruik nemen (april 2017)

  • Bestanden & database verplaatst
  • wp-config.php: Database-string aangepast
  • wp-config.php: wp_home & wp_siteurl toegevoegd: Ze stonden er nog niet in, maar de site redirecte wel steeds naar de oorspronkelijke locatie
  • Bestandsrechten fixen map backup-guard ivm. foutmelding SGExceptionForbidden: Permission denied. Directory is not writable: /var/www/example.com/wp-content/uploads/backup-guard/
  • Inloggen in wp-admin

Casus: Site klonen & redirects (okt. 2017)

Betreft klonen van een site van test1.example.com naar test2.example.com. Er was een probleem met redirecting: Hij bleef naar de oude site terugkeren:

  • Bestanden & database geklooned
  • In wp-config.php database-string aangepast
  • wp search-replace test1.example.com test2.example.com - Site bleef redirecten van test2.example.com naar test1.example.com
  • Browsercache geleegd (gewoon alles van het afgelopen uur verwijderd) - Probleem opgelost.

Casus: MySQL-fouten (okt. 2017)

Het bleek dat de ontwikkelomgeving een nieuwere versie van MySQL heeft, dan de externe testversie. Oplossing:

cd /var/www/example.com

# db-export & aanpassen
#######################
#
# * Dankzij "cd"-commando hierboven, belandt sql-dump in root van installatie - Da's handig!
# * Mysqldump gebruiken in compatibiliteitsmodus
# * Dump aanpassen: Find & replace: "TYPE=InnoDB" vervangen door "Engine=InnoDB"
#
mysqldump --compatible=mysql4 <db_name> > export_bestand.sql

Casus: Site schakelt steeds naar https (nov. 2017)

Een site is geklooned naar http://example.com. Als ik 'm oproep, springt-ie gelijk naar https://example.com (dus met de -s- van secure). Ook http://example.com/wp-admin doet hetzelfde.

Oplossing: Op database-niveau in tabel wp_options de waardes voor siteurl en home aanpassen. Klaar.

Casus: Migratie https naar http (mei 2018)

Toepassing wp search-replace waarbij oa. siteurl en home worden aangepast - Oude situatie
Toepassing wp search-replace waarbij oa. siteurl en home worden aangepast - Nieuwe situatie

Dit betreft een migratie van een productie- naar een ontwikkelomgeving, waarbij de productie https was, en de ontwikkelomgeving http.

Acties:

Casus: js_composer ontbreekt na migratie (sep. 2018)

Oorzaak: Binnen de ontwikkelomgeving is gebruiker strompf de eigenaar van alles, maar op de externe omgeving is dit een ander account. Resultaat: Map js_composer was niet leesbaar voor de webserver.

Oplossing:

cd plugins
chmod o+rwX js_composer
cd js_composer
chmod -R o+rX *

Zie ook

Bronnen

Https » http