Enkele jaren geleden publiceerde ik al eens een artikel over mijn procedure voor het upgraden van een bestaande OpenX installatie. In de loop van de tijd heb ik die procedure verder verbeterd op basis van praktijkervaringen. In dit artikel beschrijf ik hoe ik dergelijke OpenX upgrades nu uitvoer.
Opmerkingen vooraf
De allerbelangrijkste tip die ik kan geven is: maak backups!
Een andere belangrijke opmerking: de procedure die hieronder wordt besproken is gebaseerd op mijn persoonlijke ervaringen bij het upgraden van honderden OpenX installaties. Ik heb de aanwijzingen zo uitgewerkt dat ze in vele situaties kunnen worden toegepast. Ik beweer echter niet dat het proces in alle gevallen zo zal werken en voor iedereen geschikt is.
Beginsituatie
Installatie met 1 server
De procedure die hieronder wordt uitgelegd is toegespitst op een installatie waarbij slechts 1 server alles afhandelt wat betrekking heeft op OpenX. Als u een installatie heeft met meerdere servers is de kern van het upgrade proces hetzelfde, maar u zult uiteraard enkele aanpassingen moeten maken in de diverse stappen. Als u er in geslaagd bent om een installatie met meerdere servers te maken, dan weet u ongetwijfeld wel waar de aanpassingen gemaakt moeten worden.
OpenX geïnstalleerd op www.voorbeeld.nl/openx/
Ik ga er van uit dat u het OpenX systeem heeft geïnstalleerd op uw website voorbeeld.nl in een directory genaamd ‘openx’. Het adres is dus volledig: www.voorbeeld.nl/openx/. Ook ga ik er van uit dat het op de juiste wijze is geïnstalleerd en geconfigureerd.
OpenX gebruikt een eigen database
Ik ga er ook van uit dat u voor OpenX een aparte database gebruikt, genaamd “openx_xyz”, waarbij xyz het versienummer is van uw huidige OpenX versie. Als u bijvoorbeeld OpenX v2.8.4 heeft, dan zou de database “openx_284″ heten.
Ik ga er verder van uit dat u een aparte MySQL gebruiker heeft voor de OpenX database, en dat die gebruiken “all privileges” heeft op die database. In de instructies hieronder zal ik de gebruiker “openx” noemen.
Banner images opgeslagen in www.voorbeeld.nl/images/
Tenslotte ga ik er van uit dat u de opslag van de banner image bestanden heeft verplaatst naar een directory buiten de OpenX directory. Als u dat nog niet gedaan heeft, dan zou ik adviseren om dat eerst te doen. De instructies hiervoor staan in een recent bericht op dit weblog: How To: banner images opslaglocatie verplaatsen.
Overzicht van stappen van de OpenX upgrade procedure
Het upgrade proces bestaat uit twee hoofdonderdelen: voorbereidingen en upgrade.
De voorbereidingen houden in:
- Uploaden van de bestanden van de nieuwe versie in een nieuwe directory op de server
- Aanmaken van een nieuwe database
- Kopiëren en aanpassen van het configuratie bestand
- Voorkomen van de aanmaak van backup tabellen
- Instellen van permissies van bestanden en directories
De daadwerkelijke upgrade houdt in:
- De database kopiëren
- De upgrade wizard uitvoeren
- De nieuwe versie ‘live’ zetten
Lees deze procedure zorgvuldig en volledig
Ik beveel u aan om deze hele procedure van te voren zorgvuldig en volledig door te lezen. Op die manier weet u wat u te wachten staat en welke hulpmiddelen en informatie u nodig zult hebben.
U zou zelfs kunnen overwegen om eerst een proefupgrade te doen op een testserver of een kopie van uw systeem.
Voorbereidingen voor de upgrading van OpenX
1. Uploaden van bestanden van nieuwe software versie
De OpenX software is zo ontworpen dat de upgrade wizard kan worden uitgevoerd in een tijdelijke directory. Dit betekent dat de huidige software versie op geen enkele wijze wordt aangepast tijdens de upgrade. In het onwaarschijnlijke geval dat er iets mis gaat bij de upgrade, zal de levering van de advertenties op uw site(s) niet worden verstoord.
De eerste stap bij de voorbereidingen is om een nieuwe directory aan te maken op hetzelfde niveau als de bestaande ‘openx’ directory. Ik noem deze directory altijd ‘openx_new’. Daarna gebruik ik een FTP programma om de bestanden van de nieuwe versie in die nieuwe directory te uploaden.
2. Aanmaken van een nieuwe database
Ik voer de upgrade nooit uit op de bestaande database. In plaats daarvan gebruik ik altijd een kopie van die database. Op die manier zal de originele database onveranderd blijven, zelfs als er iets mis gaat tijdens de upgrade, en zal alles blijven werken alsof er niets gebeurd is.
De tweede stap bij de voorbereidingen is dus om een nieuwe database te maken met een naam die overeenkomt met het versienummer van de upgrade. Als ik bijvoorbeeld zou gaan upgraden naar OpenX versie 2.8.7, dan zou de naam van de nieuwe database “openx_287″ worden. Maak deze nieuwe database aan en zorg er ook voor dat de bestaande MySQL user “openx” de juiste rechten (“all privileges”) heeft op deze nieuwe database.
3. Kopiëren en aanpassen van het configuratie bestand
De upgrade procedure die ik hier beschrijft houdt in dat u de upgrade wizard uitvoert op de zojuist nieuw aangemaakt database. Om dit te laten gebeuren moet u het OpenX configuratiebestand aanpassen zodat deze verwijst naar de nieuwe database.
Het OpenX configuratiebestand is te vinden in de ‘var’ directory vlak onder de ‘openx’ directory. De naam van het configuratiebestand begint met uw domeinnaam en eindigt op confi.php. Voor van het voorbeeld van een installatie in www.voorbeeld.nl/openx zou het configuratiebestand dus www.voorbeeld.nl.conf.php heten.
Download het configuratiebestand naar uw eigen computer via uw FTP programma, en open het in een tekst-editor zoals Notepad (Kladblok). U moet een aanpassing maken in de [database] sectie van het bestand. Zoek de regel die begint met ‘name=’ en verander de naam van de database in de naam van de nieuwe database die u in de vorige stap gemaakt heeft.
Daarna moet u deze aangepaste versie van het configuratiebestand uploaden naar de ‘var’ directory van de nieuwe ‘openx_new’ directory.
4. Aanmaken van backup tabellen voorkomen
De OpenX upgrade wizard zal normaal gesproken backups maken van alle tabellen in de OpenX database die worden veranderd tijdens de upgrade. Deze backups zijn bedoeld voor een herstelpoging wanneer er iets mis gaat tijdens de upgrade. Maar als uw database erg groot is, en als de tabellen waarvan een backup gemaakt moet worden ook, dan kan dit resulteren in een fikse toename van de totale omvang van de datase. Het betekent ook dat de upgrade als geheel veel langer duurt dan zonder dergelijke backups.
De upgrade procedure die ik hier beschrijf voorziet er echter toch al in dat er een nieuwe database wordt gemaakt en dat alle data daar naar toe wordt gekopieerd. Er is dus eigenlijk helemaal geen echte noodzaak voor deze backup tabellen.
Er is een trucje om te voorkomen dat de upgrade wizard backup tabellen maakt. Het is voldoende om in de ‘var’ directory een bestand genaamd “NOBACKUPS” te maken. Dit bestand kan gewoon leeg blijven, het gaat om de naam ervan. De Upgrade wizard zal dan het aanmaken van backup tabellen overslaan.
5. Instellen van permissies van bestanden en directories
Gedurende de upgrade, maar ook tijdens het normale gebruik, stelt de OpenX software als eis dat diverse bestanden en directories op de server kunnen worden aangemaakt of veranderd. Dit betekent dat u de permissies van deze bestanden en directories zult moeten aanpassen. De upgrade wizard controleert dit als een van de eerste stappen, en zal vereisen dat u deze permissies op dat moment instelt, maar het is eenvoudiger om dat nu alvast te doen tijdens de voorbereidingen.
De volgende directories, en alle bestanden en subdirectories, moeten worden ingesteld op “world writable”:
- ‘openx_new/plugins’
- ‘openx_new/var’
- openx_new/www/admin/plugins’
Als uw server werkt met Linxu of Unix, dan komt dit overeen met ’777′. Raadpleeg de systeembeheerder als u niet weet hoe u dit instellen.
De dag en tijd voor de upgrade plannen
Het is verstandig om de dag en het tijdstip voor de daadwerkelijke upgrade zorgvuldig te plannen. De meeste websites hebben een duidelijk dag-en-nacht patroon in de webstatistieken. Als het kan, voer de upgrade dan uit tijdens het rustigste moment van de dag (of nacht). Dit heeft diverse voordelen.
- De server zal minder druk zijn dan overdag, en daarom sneller werken als het gaat om het doorvoeren van veranderingen in de database en de bestanden van OpenX.
- Het is waarschijnlijk dat er ‘s nachts niemand in de OpenX gebruikersinterface aan het werk is. Hoe dan ook, u zult iedereen die met OpenX werkt moeten vragen om uit het systeem te blijven gedurende de upgrade.
- U zult de statistieken van de tijd die het duurt om de upgrade uit te voeren missen. Als u de upgrade kunt doen op een tijdstip dat er maar weinig bezoekers zijn, dan zult u zo min mogelijk statistieken kwijtraken.
- Helemaal aan het eind van de upgrade zult u de ‘openx’ en ‘openx_new’ directories omwisselen. Afhankelijk van hoe snel u kunt typen, zal dit een paar seconden duren. Door dit op een rustig tijdstip te doen zal vrijwel niemand er iets van merken.
Welke dag of welk tijdstip u ook kiest, zorg er altijd voor dat u de upgrade start vlak na het maintenance proces dat op het hele uur plaatsvindt. Dit is nodig omdat u dan een consistente situatie van de database als uitgangspunt neemt, en dat u maar weinig impressies, kliks en mogelijk conversies mist terwijl u de upgrade uitvoert.
Het zou dus kunnen dat u moet besluiten om de upgrade uit te voeren midden in de nacht van zondag op maandag. Het nadeel daarvan is natuurlijk wel dat u een flink stuk nachtrust zult moeten opofferen.
De upgrade van OpenX uitvoeren
Nu alle voorbereidingen zijn afgerond, is het tijd om de upgrade echt te gaan uitvoeren.
De stappen die hieronder staan moeten worden uitgevoerd in de kortst mogelijke doorlooptijd. Zorg er voor dat u niet wordt gestoord of afgeleid, bijvoorbeeld door telefoontjes, vergaderingen of mensen die binnenlopen. De tijd die nodig is om de hele upgrade uit te voeren hangt grotendeels af van de omvang van de database en de snelheid van de server. Het kan in enkele tientallen seconden gebeurd zijn, maar het kan ook een paar minuten of zelfs een half uur duren.
1. De database kopiëren
Zoals hiervoor al is toegelicht bestaat het upgrade proces er uit dat er een kopie van uw productie database wordt gemaakt in de nieuw aangemaakte database. De echte upgrade wordt daarna op deze kopie uitgevoerd.
Als u niet bekend bent met het werken met command line opdrachten, dan kunt u waarschijnlijk wel een hulpmiddel als phpMyAdmin gebruiken om alle tabellen in uw bestaande database ‘openx_abc’ te kopiëren naar de nieuw database ‘openx_xyx’.
Het is vaak echter veel sneller om met een paar command line opdrachten de data uit uw bestaande database te exporteren en om die exportfile daarna in de nieuwe database te importeren. Als u niet weet hoe dat precies moet,v raag dan een collega, een medewerker of een externe deskundige om assistentie.
Hier is een sjabloon voor deze command line opdrachten.
Om data uit uw bestaande database te exporteren naar een tekstbestand:
mysqldump -uUSER -pPASSWORD OLDDATABASE –skip-lock-tables > FILE.sql
Om data van dit tekstbestand te imprteren in de nieuwe database:
mysql -uUSER -pPASSWORD NEWDATABASE < FILE.sql
U zult de aanduidingen USER, PASSWORD, OLDDATABASE en NEWDATABASE moeten veranderen in de juiste namen en waarden.
Welke manier u ook gebruikt om de data te kopiëren, controleer altijd of alle tabellen in de nieuwe database terecht zijn gekomen.
2. De upgrade wizard uitvoeren
Nadat u de volledige database heeft gekopieerd zoals hiervoor beschreven, kunt u de upgrade wizard opstarten.
Open uw webbrowser en voer het adres in van uw nieuwe OpenX versie, wat in het voorbeeld van dit artikel zou zijn:
http://www.voorbeeld.nl/openx_new
De OpenX software zal herkennen dat er een upgrade plaats vindt en in plaas van het normale inlogscherm zal de upgrade wizard gestart worden.
De upgrade wizard zal all het noodzakelijke werk voor uw doen. Er verschijnt eerst een welkom scherm, en daarna wordt een controle uitgevoerd van de server om zeker te weten dat deze voldoet aan de technische eisen voor het gebruik van OpenX.
Op een bepaald moment zult u moeten bewijzen dat u het recht heeft om een upgrade uit te voeren door de OpenX administrator gebruikersnaam en het bijgehorende wachtwoord in te voeren. De nieuwste versie van de OpenX software zullen u tevens dwingen om in te loggen op een bestaand OpenX account of om een nieuw OpenX account aan te maken.
De upgrade wizard zal ook de database details laten zien die zijn aangetroffen in het configuratiebestand. Controleer dit zorgvuldig zodat u zeker weeet dat u de upgrade gaat uitvoeren op de nieuwe (kopie) datatabase.
Na deze controle zal de upgrade wizard alle noodzakelijke wijzigingen gaan aanbrengen in de database. Afhankelijk van de grootte van de database, de snelheid van uw server en het aantal veranderingen kan dit een paar seconden duren maar ook meerdere minuten.
Nadat de database veranderingen zijn afgerond zal de upgrade wizard het ‘directory path’ laten zien van de oude versie van OpenX. Alhoewel u bezig bent in de tijdelijke directory, moet u hier het werkelijke path zien van de echte, live versie van het systeem. Controleer het path en bevestig dat dit correct is. De upgrade wizard zal nu uitzoeken welke plugins geïnstalleerd waren in de huidige versie en deze plugins ook installeren in de nieuwe versie. Gedurende deze stap zal er zelfs gecontroleerd worden of er nieuwere versies van de plugins beschikbaar zijn. Sommige plugins zullen ook tabellen in de database veranderen of aanmaken.
Helemaal aan het einde van de upgrade wizard zal deze een pagina tonen om te melden dat de upgrade succesvol was. Als u op “OK” klikt op die pagina, zal uw browser worden doorgestuurd naar het officiële adres van uw OpenX installatie, in ons voorbeeld dus www.voorbeeld.nl/openx/. Aangezien u in die directory niet bent ingelogd, krijgt u het inlogscherm te zien. Niet schrikken, in de volgende stap wordt dit opgelost.
Als er ergens iets mis is gegaan tijdens de upgrade, lees dan zorguldig elke waarschuwing, foutmelding of andere melding in de browser. In vrijwel alle gevallen zal het duidelijk zijn wat er gedaan moet worden om het probleem op te lossen. U zult moeten besluiten of u het probleem direct wilt aanpakken en verder gaan, of dat u de upgrade moet uitstellen om meer complexe problemen eerst te verhelpen.
Wat er ook gebeurt, voer de volgende, laatste stap van deze instructies niet uit als er zich belangrijke problemen hebben voorgedaan tijdens het uitvoeren van de upgrade wizard.
3. Omwisselen van de directory namen op de nieuwe versie live te zetten
Als de upgrade wizard is afgerond zonder fouten of problemen (zie de laatste paragrafen van de voorgaande stap), dan hoeft u nu alleen nog maar de twee directories om te wisselen om uw upgrade versie live te zetten. Dat gaat als volgt:
- Verander de naam van uw bestaande ‘openx’ directory in ‘openx_old’
- Verander de naam van de nieuwe ‘openx_new’ directory in ‘openx’
Dit zou het liefst zo snel mogelijk achter elkaar gedaan moeten worden, binnen een paar seconden.
Tenslotte…
Nadat u deze hele upgrade procedure heeft doorgewerkt, werkt u nu met de nieuwe versie van de OpenX software, in de oorspronkelijke directory naam www.voorbeeld/openx/. Het is dus niet nodig om iets te veranderen aan de invocation code op uw site(s).
Ik adviseer u om de ‘oude’ versie van de software, die nu in de ‘openx_old’ directory staat, nog een tijdje te laten staan. Als u merkt dat er iets mis is met de nieuwe versie kunt u eenvoudig terugschakelen door de directorynamen weer te veranderen (openx naar openx_new en openxold naar openx).



