Ausgangsbasis:
Ein Webauftritt mit CPO 4.1.6+1 soll auf CPO 4.1.6+4.0 upgedatet werden.
Das Vorgehen ist das Gleiche wie beim Update eines originalen CPO 4.1.6 oder älter auf eine aktuelle ConPressoPlus-Version!
Dabei soll von PHP 7.3.5 auf PHP 8.1.8 umgestellt werden.
Vorarbeit:
Zuerst werden Daten und Datenbank komplett gesichert um diese Daten auf den neuen Server zu übertragen, Dateivergleiche durchführen zu können und natürlich ein Backup zu haben.
Für das PHP-Update ist relevant, ob beide PHP-Versionen verfügbar und umschaltbar sind.
Sind beide Versionen vorhanden, dann kann das Update durchgeführt werden und dann auf die neue PHP-Version umgeschaltet werden.
Üblicherweise werden aktuell (7/22) auf Hosting-Paketen die PHP-Versionen 7.4, 8.0 und 8.1 angeboten, vereinzelt werden über den "Extended Support" (teils kostenpflichtig) auch ältere Versionen toleriert.
Folgende Dinge müssen vor dem Update geprüft und später beachtet werden:
- Welche Module sind installiert? Sind davon welche deaktiviert und sogar entbehrlich?
- Welche Dateien wurden geändert?
- Gibt es zusätzliche PHP-Dateien?
Bei 1+2 kann der Update-Check von mod_track helfen.
Dies ergibt die Prüfung beim betrachteten Webauftritt:
Bei den Datei-Änderungen gilt es anschließend durch Vergleich mit den Originalen festzustellen, was geändert wurde, was dies bewirkt und ob diese Änderung für den weiteren Betrieb erforderlich ist oder ggf. in CPO+ schon vorhanden oder sogar optimiert ist. Das ist recht einfach, wenn man schon immer Änderungen dokumentiert hat.Modulverzeichnisse
mod_phpinfo
mod_mobile
mod_functions
mod_autologin
mod_search
mod_imagesize
mod_track
Datei-Integrität
Beachten Sie, dass nur die originalen ConPresso-Dateien geprüft werden. Module oder sonstige hinzugefügte Dateien können nicht geprüft werden.
Die folgenden Dateien entsprechen nicht der originalen Prüfsumme und wurden möglicherweise verändert.
_admin/articles.php
_admin/index.php
_admin/login.php
_admin/modules.php
_editor/editor.php
_include/buildpage.inc.php
_include/common.inc.php
_include/db_mysql.inc.php
_include/form_fields.inc.php
_include/lang/deutsch/common.inc.php
_include/member.inc.php
_include/parser.php
_include/secure.php
_include/sessiondb.inc.php
_include/translation.inc.php
_includesite/i_file_upload.php
_includesite/i_manage_files.php
_rubric/loadfooters.php
_rubric/loadheaders.php
_skin/conpresso/common-skin.php
mod_search/includes/inc_search_function.inc.php
Bei den Modulen sind ebenfalls eventuelle Änderungen durch Vergleich mit den Originalen zu prüfen. Außerdem sind die Moduleinstellungen zu dokumentieren!
Die Moduleinstellungen kann man durch Speichern als HTML-Datei einfach dokumentieren.
Für den Dateivergleich gibt es zahlreiche spezialisierte Tools, diese zeigen auch im Original nicht vorhandene Dateien (Punkt 3), die meist das größte Kopfzerbrechen bereiten.
Prüfung der Datei-Änderungen
Dafür enpacke ich das Original-Archiv in ein lokales Verzeichnis und lade die Dateien des Webauftritts in ein weiteres lokales Verzeichnis. Diese (s.o. Datei-Integrität) werden nun mit einem Dateivergleichstool abgeglichen, das die genauen Änderungen anzeigt. Teilweise sind es nur ergänzte oder nach Änderungen vergessene Leerschritte oder Leerzeilen und können ignoriert werden, teilweise korrigieren sie aber auch Fehler oder rüsten Funktionen nach. Wer den Sinn einer Änderung nicht erkennt sollte hier aufhören und jemanden mit dem Update beauftragen!
Um zu beurteilen, ob eine Änderung in der neuen Version noch eingepflegt werden muss, sollte man einen Blick in die neuen Dateien werfen, dies kann aber auch beim Versuch die Änderungen in diese neuen Dateien zu übernehmen erfolgen. Ich persönlich prüfe lieber frühzeitig, um nicht mittendrin überrascht zu werden.
Ergebnisse der Prüfung
_admin/articles.php -> mod_instantupload, break statt continue viewtopic.php?f=17&t=4743
_admin/index.php -> mod_autologin
_admin/login.php -> mod_autologin
_admin/modules.php -> break statt continue viewtopic.php?f=17&t=4743
_editor/editor.php -> ereg_replace() wird zu preg_replace()
_include/buildpage.inc.php -> mod_mobile
_include/common.inc.php -> force ISO
_include/db_mysql.inc.php -> mysqli support
_include/form_fields.inc.php -> mod_instantupload
_include/lang/deutsch/common.inc.php -> Sprachergänzungen
_include/member.inc.php -> mod_autologin
_include/parser.php -> mod_imagesize
_include/secure.php -> mod_autologin
_include/sessiondb.inc.php -> session garbage collection
_include/translation.inc.php -> Defaultsprache Deutsch
_includesite/i_file_upload.php -> mod_imagesize
_includesite/i_manage_files.php -> mod_imagesize
_rubric/loadfooters.php -> mod_mobile
_rubric/loadheaders.php -> mod_mobile
_skin/conpresso/common-skin.php -> CPO+
mod_search/includes/inc_search_function.inc.php -> FIX for PHP7 - ereg() replaced by stripos()
Hierbei sind grüne Einträge Änderungen, die in CPO+ definitiv bereits integriert sind und somit keine manuelle Anpassung mehr erfordern oder die gar nicht übernommen werden sollen, es bleibt also nur ein Bruchteil.
Rote Einträge sind Änderungen, die nicht übernommen werden sollen.
Das alles bis hierhin war nur Vorbereitung, es ist noch nichts passiert!
Aber man hat einen Eindruck, wie groß der Aufwand wird, weiß hoffentlich, was man wirklich behalten will und kann bei Problemen den bisherigen Zustand rekonstruieren oder einfach zurücksetzen.