Website backups

Posted on 10 August 2011

0


Een CMS website is niet meer zo makkelijk te backuppen dan de goede oude html pagina’s. Je moet naast de bestanden op de server ook de mysql database backuppen. Denk overigens ook aan zaken als de instellingen van je server (php versie en rechten, emails, cronjobs etc), voor het geval je tussen verschillende servers gaat migreren.

Backup Concrete5 CMS en/of SQL

Pas had ik een klein probleempje met een http://www.site.com of site.com installatie. Het zat net verkeerd om. Mijn eerste gedachte was om de concrete5 installatie te verwijderen, vervolgens opnieuw te installeren met de juiste instellingen en daarna mijn content te importeren. Daarvoor was het zaak deze eerst te backuppen. Het gaat dus om de bestanden op de server én de mysql database.

  • Concrete5 geeft zelf in het CMS de optie om backups te maken. Maar volgens mij is dat uitsluitend de database en niet de bijbehorende bestanden zoals de foto’s in de files map!
  • Installatron heeft ook een mooie backupknop, deze backups belanden in directadmin/installatron/backups. Zie onderstaand wat meer over de bruikbaarheid van deze backups. Je kan deze backups ook downloaden maar ik zie het nut er niet van in aangezien er geen enkele manier is waarop je ze weer kan restoren vanaf deze download. Misschien als je het in de map application_backups van de server zet, maar als je ze via de ftp moet uploaden, dan kan je het net zo goed ook via de ftp downloaden. Daarbij komt dat er een index staat in .appdata/backups en die heb je toch ook echt nodig.
  • Voor de zekerheid ook een backup vanuit directadmin. Dit kan alleen voor de gehele site en mag met het backupcentrum helaas alleen ‘s nachts. Je kan deze .tar.gz bestanden wel lokaal uitpakken om zo alleen de mappen/bestanden te nemen die je nodig hebt. Er zit ook een backup van de e-mailsettings en databases in. Het restoren van zo’n backup heb ik nog niet kunnen testen.
  • Gelukkig kan ik via directadmin de mySQL database wel downloaden als .gz bestand en ook zo weer terugplaatsen (zie onderstaande opmerkingen). De benodigde bestanden van concrete5 waren ook makkelijk te vinden via de directadmin bestandsbeheer: sinds de installatie waren alleen de  map files en het bestand .htaccess gewijzigd.

MySQL databases:

  • De MySQL databases worden door web-oke elke nacht gedumpt naar de home directory, dit zijn de .sql.tar.gz bestanden in de root van de server. Deze zijn makkelijk weer terug te zetten via phpMyAdmin, zie onderstaand.
  • Er zijn overigens twee soorten database backups: een exacte kopie van het bestand die je maakt in DirectAdmin, of juist een mysql query die moet worden uitgevoerd op de database. Deze vereisen beiden hun eigen manier van terugzetten: de exacte kopie via moet DirectAdmin/terugzetten, terwijl het sql bestand juist moet worden ingeladen in PhpMyAdmin via importeren of een sql query. Dat laatste doe je door het openen van het backupbestand en kopieren van alle tekst. Voer dan deze mysql query uit op de lege database via phpMyAdmin/SQL. Als de database nog niet bestaat moet je deze eerst aanmaken, zie onderstaand:
  • Het aanmaken van MySQL databases kan niet via phpMyAdmin, dit moet namelijk via DirectAdmin. Je moet dan in DirectAdmin een databasenaam, een username en een wachtwoord opgeven.

Maar het was allemaal niet nodig. Uiteindelijk kon ik de base-url makkelijk wijzigen in het bestand config/site.php. Update 11/1/2013: Later heb ik het terugplaatsen van een sql file wel getest maar kreeg ik de foutmelding dat import.php niet wordt herkend, volgens de helpdesk kwam dit door mijn browser.

Installatron backup

Toen het wel nodig was vanwege een mislukte upgrade dacht ik snel te kunnen werken met de installatron backups. Helaas haalden deze twee SQL databases door elkaar waardoor ik een paar uur bezig ben geweest om alles weer te restoren. Mijn advies is om in Installatron niet te werken met backups maar met het kopieren van de bestaande installatie naar een tijdelijke directory. Hierdoor wordt een nieuwe SQL database aangemaakt en alle files worden gekopieerd, en alles wordt netjes gekoppeld in installatron. Dat laatste is belangrijk, want mijn backup koppelde eerst naar de juiste SQL database, en toen opeens naar een andere. Later kwam ik er achter dat het kwam doordat in .appdata/backups de instellingen van de mysql database verkeerd stonden. Als ik deze via FTP even had gewijzigd was het probleem waarschijnlijk zo opgelost geweest.

Hoe het komt dat ze verkeerd stonden weet ik nu nog steeds niet, advies is dus om dit altijd eerst handmatig te controleren voordat je een backup terug zet! Ook kan het geen kwaad om het bij een major upgrade even te klonen naar een tijdelijk domein of map.

Foutmelding

Foutmelding
Unable to get list of directories/files for backup archive.

Wordt veroorzaakt doordat het domein niet meer bestaat. Dit is op te lossen door in .appdata/backups het backupbestand te openen in een teksteditor en daar de instellingen van het domein te wijzigen. Als de database niet meer bestaat of het wachtwoord klopt niet krijg je hiervan pas een melding tijdens het restoren. Ook dit probleem is op dezelfde manier op te lossen.

Advertisements
Posted in: CMS