Migratie (WordPress): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 9: Regel 9:
 
# Controleer <code>wp-config.php</code> op hard-coded site-URL's
 
# Controleer <code>wp-config.php</code> op hard-coded site-URL's
 
# <code>wp search-replace oudeurl nieuweurl</code> - Wellicht wat destructief, maar bevalt juist daarom zo goed
 
# <code>wp search-replace oudeurl nieuweurl</code> - Wellicht wat destructief, maar bevalt juist daarom zo goed
 +
# Indien mogelijk: Bekijk met ''MySQL Workbench'' tabel ''wp_options'' en pas daar url's aan
 
# Browser: Wis afgelopen uur - <code>Ctrl-Shift-Del</code> in Firefox
 
# Browser: Wis afgelopen uur - <code>Ctrl-Shift-Del</code> in Firefox
 
# Databasedump verwijderen uit root van de installatie.
 
# Databasedump verwijderen uit root van de installatie.

Versie van 10 dec 2019 06:53

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

  1. Maak een databasedump in de root van de installatie
  2. Kopiëer alle bestanden naar de doellocatie
  3. Importeer de database
  4. wp-config.php; Werk db-string bij
  5. Controleer wp-config.php op hard-coded site-URL's
  6. wp search-replace oudeurl nieuweurl - Wellicht wat destructief, maar bevalt juist daarom zo goed
  7. Indien mogelijk: Bekijk met MySQL Workbench tabel wp_options en pas daar url's aan
  8. Browser: Wis afgelopen uur - Ctrl-Shift-Del in Firefox
  9. Databasedump verwijderen uit root van de installatie.
  10. Configureer force direct download, Zet define('FS_METHOD', 'direct'); in wp-config.php Update WordPress-installatie

Extra

  • Instellingen UpdraftPlus bijwerken?
  • https configureren?

Blijft-ie terugspringen naar de oude URL?

  • Controleer tabel wp_options - Is de URL correct aangepast?

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. Zie ook SSL & WordPress.

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