Website migratie naar Docker

Joomla! or WP?

Het moest er toch een keer van komen.. Mijn oude joomla-site (v3.10.12) migreren naar de laatste versie… En meteen ook naar Docker migreren. Dat scheelt een hoop gedoe met installeren/afhankelijkheden etc… Deze post gaat een beetje beschrijven hoe dat (niet) gegaan is…

Stap 1: Testomgeving maken.

Zoals gezegd, alles gaat naar een docker. Eerst hier een testomgeving aanmaken, zodat ik de live site niet verknooi, en eenvoudig naar een vorige staat terug kan gaan: Zie onderstaande docker-compose.yml:

services:
joomla:
image: joomla:3.10.12
container_name: joomlav3
restart: always
ports:
- 8081:80
environment:
- TZ=Europe/Amsterdam
- JOOMLA_DB_HOST=joomlav3db
- JOOMLA_DB_PASSWORD=blahblah
volumes:
- ./restore:/var/www/html/restore
joomladb:
image: mysql:8.0.13
container_name: joomlav3db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=blahblah
volumes:
- /opt/joomla3/mysql:/var/lib/mysql

Hier vallen 2 zaken op:

  1. Ik heb een volume “restore” in het joomla image gemaakt; zodat ik snel de backup bestanden etc kan transporteren.
  2. De MySQL database wordt op het host systeem opgeslagen in /opt/joomla3/mysql.

Stap 2 testomgeving vullen.

Gelukkig kent joomla een hele goede backup extensie: Akeeba. Hiermee kun je heel snel een website backuppen en restoren. Werkwijze is als volgt:

  • Maak op de originele website een backup, en sla deze ergens op. (Ik zorg in dit geval dat deze in bovengenoemde restore map terecht komt.)
  • Download Akeeba Kickstart, pak deze uit, en kopieer deze ook naar de restore map.
  • Ga in de docker joomla omgeving, en kopieer de inhoud van de restore map naar root.
docker exec -it joomlav3 /bin/bash
cp restore/* ./
chown www-data:www-data * -r
exit
  • Ga vervolgens naar: http://docker-01.xxxxx.xxx:8081/kickstart.php
  • En volg de instructies. 🙂

Stap 3: Upgraden

En hier begint het gedonder. er moeten een aantal zaken gebeuren: Zie ook bijvoorbeeld: https://www.joomlart.com/blog/joomla-templates/how-to-migrate-joomla-3-to-joomla-4-step-by-step-tutorial

  1. Alle nog up te daten plugins moeten geupdate worden.
  2. Alle niet bruikbare/verouderde plugins moeten verwijderd worden
  3. Je moet terug naar het default template Beez3, en je eigen template ook verwijderen.
  4. Ook taal plugins verwijderen.

Nou, ik ben een dag bezig geweest, diverse malen weer nog meer extensies verwijderd, opnieuw backup maken, testen. *^%#@(%# weer mislukt, backup restoren. Uiteindelijk dus zonder positief resultaat, ik bleef fouten houden… Dus besloten om te kijken of het met WordPress wel lukt. (en bij positief resultaat joomla te ditchen…)

Stap 4: WordPress installeren.

Ook, deze uiteraard ook in een docker-compose.yml

services:
  wordpress:
    image: wordpress:6.7.1
    container_name: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: wordpressdb
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: blahblah
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - /opt/wp/site:/var/www/html
  db:
    image: mysql:8.0
    restart: always
    container_name: wordpressdb
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: blahblah 
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: blahblah
    volumes:
      - /opt/wp/db:/var/lib/mysql

Vervolgens via http://docker-01.xxxxx.xxx:8080/ De wizard doorlopen en de site geinstalleerd.

Stap 5 Importeren joomla content

Daarna de “FG Joomla to WordPress” geinstalleerd, en via de commandline wel eerst MySQL PDO driver geinstalleerd en de container herstart:

docker exec -it wordpress /bin/bash
docker-php-ext-install pdo pdo_mysql
exit

Nu kun je in de Gui de plugin configuren, zodat je via html de images etc kunt importeren en via PDO MySQL direct de joomla database kunt uitlezen, met het volgende resultaat:
98 posts imported
12 links categories imported
Importing web links…
144 web links imported
27 medias imported
Don’t forget to modify internal links.
IMPORT COMPLETED

Jay! Nu verder prutsen in WordPress… Leuk template uitzoeken, en kijken hoe verder….

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *