OpenX Upgraden

Bei Upgrades von OpenX kommt es leider immer wieder mal zu Problemen, da leider nicht alle Schritte in der offiziellen Upgrade Anleitung aufgeführt sind. Vergisst man das eine oder andere, kann es zu Fehlern und zum Abbruch des Upgrade Prozesses kommen.

Schritt 1: Neue Version herunterladen

Als erstes die neue Version herunterladen und entpacken

fetch http://download.openx.org/openx-2.8.10.zip
unzip openx-2.8.10.zip

Ich habe immer eine alternative Subdomain aktiv für OpenX Upgrades. Die aktuelle Version läuft unter banner.domain.com, das Upgrade unter banner.domain.com.  Entsprechend sind auch die Server Folders eingerichtet. Mit Symlinks verweist man einfach immer auf die gewünschte openX Version. Also:

ln -s openx-2.8.10 banner2

Schritt 2: Datenbank Backup

Datenbank backupen. Ich mach hier jeweils einfach eine live Kopie der bestehenden Datenbank und keinen DB-Dump.

Im Falle eines Restores kann ich dann einfach die Backup Datenbank renamen und so ist das alte OpenX wieder vollständig da. Also das Restore würde dann so aussehen:

cd /databases/
rm OpenX; mv OpenX_Bak_20120919 OpenX

Und schon sind allfällige SQL Anpassungen durch ein fehlerhaftes Upgrade wieder geresettet.

Schritt 3: Mögliche Probleme aus dem Weg schaffen

Beim Upgrade auf Version 2.8.10 kam bei mir während dem Install der Fehler „Duplicate entry ‚oxMarket_publisher_account_id‘ for key ‚PRIMARY‘ „. Weitere Infos dazu hab ich in diesem Artikel festgehalten.

Damit es also während dem Install nicht zu Problemen kommt, entferne ich die Einträge aus der Datenbank, welche NULL Values haben.

Diesen Schritt würde ich jedoch nur durchführen, falls es beim ersten Update Versuch zum Abbruch kommt.

DELETE FROM `OpenX`.`phpads_application_variable` WHERE `phpads_application_variable`.`name` = 'oxMarket_api_key';
DELETE FROM `OpenX`.`phpads_application_variable` WHERE `phpads_application_variable`.`name` = 'oxMarket_publisher_account_id';

Schritt 4: Bestehende Daten & Configs kopieren

cd banner2
vi init.php

Hier das error_reporting gleich als erstes anpassen, sonst kommt es nachher zu Fehlern:

/* replaced by teslina - PHP Strict Standards Fix
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_DEPRECATED);
*/
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_DEPRECATED ^ E_STRICT);
// eof teslina

Edit 2013-11-14 / Danke, Alex, für den Hinweis! 🙂

/* replaced by teslina - PHP Strict Standards Fix
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_DEPRECATED);
*/
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED & ~E_STRICT);
// eof teslina

Das error_reporting muss enbenfalls im maintenance.php script hinzugefügt werden

vi scripts/maintenance/maintenance.php
#!/usr/bin/php -q
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED & ~E_STRICT);

Und nun weiter :

cd www/images
cp -r ../../../banner/www/images/* .
cd ../../var
cp ../../banner/var/*.conf.php .
cd ../plugins/etc/
cp -r ../../../banner/plugins/etc/* .

Ich kopiere das Plugins Verzeichnis absichtlich vorher. Weil sonst muss man dies während dem Update machen und es gibt Debug errors:

cat var/debug.log

Sep 19 09:59:12 +0200 OA-50597b50850a0 [    error]  Failed to find package definition file /www/openx-2.8.10/plugins/etc/openXBannerTypes.xml
Sep 19 09:59:12 +0200 OA-50597b50850a0 [    error]  Failed to find package definition file /www/openx-2.8.10/plugins/etc/openXBannerTypes.xml
Sep 19 09:59:12 +0200 OA-50597b50850a0 [  warning]  Invalid argument supplied for foreach()
Sep 19 09:59:12 +0200 OA-50597b50850a0 [    error]  Failed to find package definition file /www/openx-2.8.10/plugins/etc/openXDeliveryLimitations.xml
[..skip..]

Schritt 5: Maintenance deaktivieren

Hier kommentiere ich einfach den maintenance Cronjob während des Upgrade Prozesses aus.

Schritt 6: Upgrade starten

Das Upgrade über die Domain banner2.domain.com starten. Sollten Probleme auftreten,

  1. diese beheben
  2. OPENX UPGRADE VERZEICHNIS WIEDER LÖSCHEN,
  3. Datenbank Backup zurückspielen
  4. und wieder bei Schritt 1 beginnen.

Schritt 7: Upgrade aktivieren

Nach erfolgreichem Upgrade die neue Version aktivieren. Dazu einfach den Symlink anpassen:

 rm banner; ln -s openx-2.8.10 banner

Schritt 8: abschliessende Anpassungen

  • Maintenance Cronjob wieder aktivieren.

 

Flattr this!

  • *

    Du kannst diese HTML tags verwenden: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Kommentar-Feed für diesen Beitrag
nach oben