NAVIGATION
Update phpwcms (nach V1.5.x)
Forum: Update phpwcms
(Stand 09.03.12)
Download: - Neueste Version
Download: - Neueste Version
Download: - Nightly Build
Änderungen: phpwcms Changelog
Docu: - Docu: Installation & Update
Nicht erfahrenen Anwendern empfehle ich eine parallele Installation. (Dies hat auch den Vorteil, dass ganz in Ruhe z.B. ein neues Design aufgebaut oder Änderungen/Neuerungen eingepflegt werden können, da die alte Seite unberührt bleibt).
Die neueste Version installieren.
In älteren Versionen (bis zu welcher?) gibt es einen Eintrag in der Datei include/inc_lib/default.inc.php am Ende der Datei:
$phpwcms["version"] = Version No.
In neueren Versionen (ab. ca. 1.3.5) (ab wann genau?) steht der Eintrag in der Datei include/inc_lib/default.inc.php etwa ab Zeile 135:
$phpwcms["release"] = Release No. $phpwcms["release_date"] = Release date
In der Folge verlagert sich die Angabe immer weiter nach hinten. Ab Versione 1.4.3 r371 wird auch der Revisionseintrag mitgeführt. Bis r420 steht dieser Eintrag in der Datei include/inc_lib/default.inc.php ab Zeile 245:
$phpwcms["release"] = Release No. $phpwcms["release_date"] = Release date $phpwcms["revision"] = Revision
Seit Version 1.4.7 (r421) steht dieser Eintrag in der Datei include/inc_lib/revision/revision.php:
define('PHPWCMS_VERSION', 'Release No.'); define('PHPWCMS_RELEASE_DATE', 'Release date'); define('PHPWCMS_REVISION', 'Revision');
und in eine zweite DB kopieren.
(phpMyAdmin → http://de.wikipedia.org/wiki/PhpMyAdmin).
- Vor dem Exportieren sollten die Inhalte folgender Tabellen geleert werden um die DB Größe zu reduzieren:
- Die neueren phpMyAdmin exportieren grundsätzlich im UTF-8 Format.
- Die neue DB wird angelegt, mit der entsprechenden collation für die MySQL Verbindung zu phpMyAdmin. (Bei älteren DB ist das zu 99% swedish_latin1_ci)
- In die neue DB wird nun die exportierte mit der default Zeichencodierung UTF-8 importiert. Solltest du ein ISO Charset verwenden, kann es notwendig sein, vor dem Import das SQL-File nach ISO zu konvertieren. Das geht ganz gut mit dem unten angesprochenen Editor.
- SQL-Textfile in den Editor laden, unter “Format” ISO8859-2 auswählen und mit einem neuen Namen abspeichern. Die Datei liegt nun ISO kodiert vor. <note important>Aber bitte vorher einen einfachen Export/Import mit identischen Einstellungen (Zeichencodierung) probieren!</note>.
Die vorhandene conf.inc.php in die neue Installation kopieren und mit der dort vorhandenen dist.conf.inc.php abgleichen. Hier wird natürlich auch die neue DB eingetragen mit collation und charset und das Unterverzeichnis in dem das neue System gerade läuft.
→ Besser wäre es wenn du speziell dazu eine Subdomain einrichten würdest anstatt die Installation mit einem Unterverzeichnisnamen anzusprechen.
wie in der Docu angegeben setzen. → Siehe auch: Unpack/Upload phpwcms
- Unter MeineDomain/setup/setup.php wird ausgegeben, welche “2. PHP version:”- und welche “3. MySQL version:” auf dem Server installiert sind. Die PHP version sollte mindestens 5 sein, die MySQL version ebenfalls.
Die MySQL version muss noch in die Datei conf.inc.php eingetragen werden.
Wenn im Setup z.B. angezeigt wird:
3. MySQL version: 5.0.51a
dann wird in der Datei conf.inc.php folgendes eingetragen:
$phpwcms['db_version'] = 50510;
<note important> Seit der V1.4.5 r401 brauchen wir kein manuelles Datenbankupdate mehr.
–> Weiter mit Punkt 05.1 Doppelte Indizes in einigen DB-Tabellen </note>
- Je nach Versionsstand, die ersten Punkte ab “1) UPGRADE …” beachten und ausführen.
<note important>
Alle DB-Updates müssen in der richtigen Reihenfolge verarbeitet werden !!!
Die führende Nummerierung ist maßgebend, nicht irritieren lassen durch die Angaben …_X.Y_to_X.Z.sql.
</note>
- DB Updates nacheinander laufen lassen und auf Fehler achten: (Immer das gesamte Ausgabefeld bis nach unten rollen!!!)
Hierbei ist natürlich der Einstiegspunkt zu beachten, ist das z.B. die Version 1.2.8 beginnt das Update mit - 15 _1.2.7-DEV_to_1.2.9.sql).
- 13__1.2.5-DEV_to_1.2.6-DEV.sql (Ab V1.2.5) - 14__1.2.6-DEV_to_1.2.7-DEV.sql - 15__1.2.7-DEV_to_1.2.9.sql - 16__1.2.9-DEV_to_1.3.0.sql - 17__1.3.0_to_1.3.2.sql - 18__1.3.2_to_1.3.3.sql - 19__1.3.3_to_1.3.4.sql (Ab V1.3.3) - 19__1.3.4_to_1.3.5.sql - 20__1.3.5_to_1.3.5.1.sql - 21__1.3.5_to_1.5.sql - 22__1.4_to_1.5.sql (Ab V1.4.x)
→ Beim letzten Update wird es wahrscheinlich zu Fehlern kommen:
- Fehler: Die Tabelle phpwcms_categories existiert nicht → ignorieren, da ein Shopupdate, doch der Shop existiert bei dir noch nicht
- Fehler: Die Tabelle phpwcms_log existiert schon → ignorieren, da diese Tabelle in der neuen Form noch nicht verwendet wird
- Es kann passieren, das in den Tabellen doppelte Indexe vorhanden sind.
→ phpMyAdmin aufrufen
→ DB auswählen
→ Tabelle auswählen
→ nach unten rollen zu den Indexen (Dort kannst du alle Indexe löschen die ein “_1 _2 _3 usw.” am Ende haben.
(phpMyAdmin sollte dich beim Aufruf der Tabelle auch darauf hinweisen, dass doppelte Indexe vorhanden sind)
Alle Tabellen durchsehen.
dann lösche bitte den komplette Pfad /include/inc_module/mod_shop/
Den Inhalt des Ordners /filearchive/ (phpwcms_filestorage) der alten Version in den Ordner /filearchive/ der neuen Version kopieren (Das Gleiche mit Daten unter /picture/ wenn verwendet)
- Geänderte Verzeichnisnamen
Alt | Neu |
---|---|
phpwcms_filestorage → | filearchive |
phpwcms_ftp → | upload |
phpwcms_template → | template |
Die vorhandene Datei /config/phpwcms/conf.template_default.inc.php der alten Version mit der neuen abgleichen.
Wenn du Home anders bezeichnet hast, dann bitte auch die Datei /config/phpwcms/conf.indexpage.inc.php abgleichen.
Die vorhandenen veränderten CSS-Datei unter /template/inc_css/ aus der alten Version abgleichen mit den entsprechenden neuen CSS-Dateien.
Die vorhandenen veränderten Template-Dateien /template/inc_cntpart/ aus der alten Version abgleichen mit den entsprechenden neuen Dateien <note tip>Wenn ich von abgleichen spreche, meine ich immer dass die neuen Dateien mit Einträgen aus den alten ergänzt werden</note>
Ab der Version V1.5 r428 wird in der conf.inc.php bestimmt, welche Endung das CMS für die Dateien verwenden soll (http://example.com/DieSeite.phtml).
Das gilt nur wenn
$phpwcms['rewrite_url'] = 1; //whether URL should be rewritable
gesetzt ist.
Die Voreinstellung
$phpwcms['rewrite_ext'] = '.html'; // The file extension used while URL is rewritten
muss dann geändert werden nach
$phpwcms['rewrite_ext'] = '.phtml'; // The file extension used while URL is rewritten
Dazu in der .htaccess
RewriteRule ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.phtml$ index.php?id=$1,$2,$3,$4,$5,$6 RewriteRule ^(.+)\.phtml$ index.php?$1
bzw. bei Installation in einem Unterverzeichnis
RewriteRule ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.phtml$ /mysubdir/index.php?id=$1,$2,$3,$4,$5,$6 RewriteRule ^(.+)\.phtml$ /mysubdir/index.php?$1
Wird folgende Einstellung in der conf.inc.php verwendet und der alte FCK Editor benutzt:
$phpwcms['rewrite_ext'] = '.html'; // The file extension used while URL is rewritten
müssen in der .htaccess einige Verzeichnisse ausgeschlossen werden:
# Ignore RewriteRule ^(include|img|template|picture|filearchive|content)/ - [L]
Siehe auch im Forum: Rewrite
Browsercache löschen → Backendlogin aufrufen, nicht die Seite aufrufen (Denn wenn du Google- oder Trackerzeugs installiert hast sollte das vor dem ersten Seitenaufruf in dieser Entwicklungsinstallation deaktiviert sein (Wird später wieder nach Fertigstellung der Seite aktiviert)).
In der vorhandenen Vorlage den Trackingcode deaktivieren
Bei älteren Version kann es vorkommen, dass die DB für einige Module noch nicht installiert ist, da diese zum Erscheinungszeitpunkt noch nicht existierten.
Jedes Modul sollte einmal unter Module aufgerufen werden, um das Setup zu starten.
<note important>Danach muss das Verzeichnis /include/inc_module/mod_Modulname/setup/ gelöscht werden!</note> Erst jetzt kann das Modul verwendet werden.
Wenn das Backend funktioniert, dann bitte das Verzeichnis /setup/ löschen oder in eine sinnlose Zeichenfolge umbenennen.
<note tip>
Das System sollte nun laufen. Beim Neuaufbau der Bilder kann es zu einem Quasistillstand des Systems kommen, nicht erschrecken.
Mehrfach nacheinander die Dateizentrale aufrufen, wenn die z.B. eine timeout Meldung kommt
</note>
(Du kannst natürlich auch den Inhalt des Ordner /content/images/ aus dem alten System kopieren, ist im Normalfall aber nicht notwendig, da das System den Index der Thumbs/verkleinerten Bilder/Dateien neue aufbaut).
Es sind natürlich noch einige Anpassungen zu bewerkstelligen wie z.B. die <META …> Tags XHTM fest zu machen: <meta …. /> usw. Ist aber Kleinkram und hat mit dem Update grundsätzlich nichts zu tun.
Die Vorgehensweise nach diesem Schema hat den Vorteil, das die alte Seite unberührt bleibt und du mit dem neuen System z.B. das Layout oder andere Neuerungen in aller Ruhe entwickeln kannst.
Nach Beendigung der Arbeiten kann das alte System gelöscht werden und die neue Version wird an diese Stelle geschoben bzw. die Domain darauf verbogen.
<note tip> Der Updatestress wird zum Großteil durch einen unbedachten Umgang mit den css und Templatedateien verursacht </note> Grundsatz 1: Immer eigene Namen für CSS- und Templatedateien verwenden die in Gebrauch sind, so werden diese von einem Update nicht berührt.
Grundsatz 2: Wenn möglich sollten für das Basissystem, das Layout und die Navi separate CSS Dateien verwendet werden. z.B. frontend01.css, layout01.css, navi01.css
Zum Abgleich bzw. für das Editieren aller Dateien kann z.B. der Editor pspad und dessen FTP-Modus. (Direkter Zugriff aus dem Editor heraus) verwendet werden.
Dieser Editor ist zusammen mit dem TotalCommander (kostenfrei für nichtgewerbliche Seiten) wirklich brauchbar. Alternativ zum TotalCommander kann auch z.B. http://www.filezilla.de/ verwendet werden. (Ist im FTP Bereich klar überlegen).
Anregung: Ein DIFF erstellen mit dem TotalCommander
<note tip> Mit heidisql kann man problemlos auch größere Datenbanken importieren (eben gerade mit einer 8MB großen DB gemacht - hat wunderbar geklappt! </note>