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:
- Ik heb een volume “restore” in het joomla image gemaakt; zodat ik snel de backup bestanden etc kan transporteren.
- 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
- Alle nog up te daten plugins moeten geupdate worden.
- Alle niet bruikbare/verouderde plugins moeten verwijderd worden
- Je moet terug naar het default template Beez3, en je eigen template ook verwijderen.
- 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….