mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.20

Gesperrt
Aldochlay
Beiträge: 1
Registriert: Sa 12. Nov 2016, 08:12
Kontaktdaten:

mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.20

Beitrag von Aldochlay » Di 15. Nov 2016, 05:07

Hallo Zusammen,

man warf mir ein Plesk-Backup einer Contenido-Website (Kinderhilfsorganisation) vor die Füße mit der Bitte es auf einem anderen Webspace ans Laufen zu bringen. Da ich noch nie mit Contenido gearbeitet habe bedeutete das einiges zu lesen ^^

Die Seite läuft mit Contenido 4.6.15. In einer VM mit Ubuntu 8.04 habe ich sie nach Migrations-Setup auch ans Laufen bekommen und soweit ich sehe funktioniert sie.

Nun muss ich sie ja irgendwie in die Gegenwart bekommen und habe zunächst das Upgrade auf 4.8.20 mir Ortwins Anleitung http://www.ortwinpinke.de/2009/05/18/co ... mandanten/ (danke dafür!) durchgeführt. Das funktioniert prinzipiell, aber es gibt Probleme mit dem mod_rewrite.

Laut Anleitung soll man es ja vorher deaktivieren bzw. deinstallieren. Leider finde ich keinen Hinweis wie das bei diesem alten mod_rewrite zu tun ist, mangels install/deinstall-Routine. Ein einfaches deaktivieren per .htaccess reicht offenbar nicht. Habe es versucht, ein Migrations-Setup für 4.6.15 gemacht, den Setup-Ordner umbenannt, dann die 4.8.20-Dateien zum Testen "drüberkopiert" und das Upgrade-Setup 4.8.20 (ohne AMR-Installation) durchlaufen. Klappt ohne Fehlermeldungen. Im errorlog steht danach nur:

Code: Alles auswählen

/setup/dbupdate.php?step=30 MySQL error 1146: Table 'kilabra.con_mod_history' doesn't exist
SHOW COLUMNS FROM con_mod_history
/setup/dbupdate.php?step=30 next_record called with no query pending.
Das Frontend wird auch angezeigt, aber in einigen Unterseiten fehlt Inhalt und stattdessen zeigt das Frontend an dessen Stelle

Code: Alles auswählen

Fatal error: Cannot redeclare class ModRewrite in /var/www/contenido/classes/class.modrewrite.php on line 15
Selbiges im errorlog.

Reicht das an Infos um mir einen Hinweis zu geben was ich falsch mache?

Lieben Dank für erleuchtende Hinweise :D
Gruß aus Köln von Jochen

xmurrix
Beiträge: 2744
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.

Beitrag von xmurrix » Mi 16. Nov 2016, 22:37

Hallo,

in der Version 4.6.* war die mod_rewrite Funktionalität durch die Modifikation der Sourcen des CMS eingebunden, man hat also an verschiedenen Stellen/Dateien Änderungen durchgeführt, damit das CMS die mod_rewrite-Funktionalität bekommt.

In CONTENIDO 4.8.* hingegen gibt es das als ein AMR-Plugin, es ist im Plugin-Ordner des CMS und hat noch in 2-3 anderen Ordnern abgelegte Dateien.

Ich vermute, dass trotz des Updates noch irgendwo in alten 4.6.15 Dateien die alte Version der Klasse ModRewrite geladen wird, daher die Fehlermeldung

Code: Alles auswählen

Fatal error: Cannot redeclare class ModRewrite in /var/www/contenido/classes/class.modrewrite.php on line 15
Finde heraus, in welchen Dateien die alte Klasse noch eingebunden wird, und entferne diese Zeilen, die die alte Version der Datei "/var/www/contenido/classes/class.modrewrite.php" einbinden.
Ich habe mal in einer 4.6.15 Version inkl. mod_rewrite gesucht und folgende Vorkommen gefunden, wenn diese Zeilen auch bei dir vorkommen, ist es ein Hinweis darauf, dass genau dort noch die alte Version der class.modrewrite.php geladen wird.

Code: Alles auswählen

Search "class.modrewrite.php"
  ...\contenido-4.6.15\cms\front_content.php
	Line 70: cInclude("classes", 'class.modrewrite.php');
  ...\contenido-4.6.15\cms\front_crcloginform.inc.php
	Line 19: cInclude("classes","class.modrewrite.php");
  ...\contenido-4.6.15\contenido\external\frontend\front_content.php
	Line 70: cInclude("classes", 'class.modrewrite.php');
  ...\contenido-4.6.15\contenido\external\frontend\front_crcloginform.inc.php
	Line 19: cInclude("classes","class.modrewrite.php");
  ...\contenido-4.6.15\contenido\includes\functions.con.php
	Line 22: cInclude("classes", "class.modrewrite.php");
  ...\contenido-4.6.15\contenido\includes\functions.str.php
	Line 36: cInclude("classes", "class.modrewrite.php");
  ...\contenido-4.6.15\contenido\includes\include.str_aliases.php
	Line 8: cInclude("classes", "class.modrewrite.php");
Suche auch in Modulen nach einer Zeile in der folgendes oder ähnliches vorkommt und entferne diese Zeilen:

Code: Alles auswählen

	cInclude("classes", "class.modrewrite.php");
Gruß
xmurrix

rethus
Beiträge: 1826
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.

Beitrag von rethus » Do 17. Nov 2016, 17:23

Ich kann mich nicht mehr erinnern, wie es von 4.6 auf 4.8 war,
aber bei 4.8 auf 4.9 musst du das AMR löschen, und neu installieren, damit es sauber lief. Das geht in der 4.9er aber direkt über das Backend.

BTW:
4.8.20 ist mittlerweile auch ein alter Hut und wird nicht mehr supported.
Daher die Empfehlung entweder direkt in einem Schwung über 4.8.20 auf 4.9 zu wechseln, oder Oldperl mal anzuhauen, der hat ein Fork namens Conlite laufen, was er momentan weiter supported.
Da dürften aktuelle Sicherheitspatches drin sein.
Also wenn 4.8.20 dann wohl Conlite - soweit ich weiß müsste die auch bei Upgrade von Conlite auf 4.9 kompatibel sein (ortwin verbessere mich bitte, wenn ich da falsch liege)
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

xmurrix
Beiträge: 2744
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.

Beitrag von xmurrix » Do 17. Nov 2016, 20:37

Habe gerade die aktuellste Version (Contenido 4.8.20) analysiert, im Grunde könnte man mit etwas Zeitaufwand die 4.8.20'er Version soweit anpassen, dass sie sogar unter PHP 7 läuft.

Warnungen gibt es viele wegen der Klassenkonstruktoren im PHP4-Format. Diese sind in PHP 7 als deprecated markiert, d. h. PHP 7 gibt eine E_DEPRECATED Warnung aus, die sich per Konfiguration unterdrücken lässt.

Dann gibt es ein paar Fehler wegen Verwendung von ereg() und zuweisen von Variablen als Referenz an Funktionen, das lässt sich alles entsprechend anpassen, man verzögert aber den Zeitpunkt für den wichtigen Wechsel auf eine neuere Version des CMS weiter hinaus. Nicht umsonst wurde viel Arbeit in die Entwicklung von CONTENIDO 4.9 investiert, damit weniger Probleme mit zukünftigeren PHP Versionen auftauchen.

Zum Thema Fork:
Ein Fork des CMS mag eventuell aktueller als die 4.8.20 sein, aber auch der Fork ist kein Garant dafür, dass die Seite nach der Installation des Fork und dem PHP Update funktioniert. Wenn man das glaubt, dann ist man auf dem Irrweg.
Auch ein Fork kann nicht dafür sorgen, dass der von euch verwendete Modulcode mit der neuen PHP-Version kompatibel ist. Denn sehr oft gibt es mit Modulen Probleme, da diese vor Jahren programmiert und nie angepasst wurden.
Man sollte also nach einem Update auf jeden Fall alle Module prüfen und ggf. anpassen, ein Update des CMS, egal ob Originalversion oder Fork, nimmt euch das nicht ab.

Grüße
xmurrix

rethus
Beiträge: 1826
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.

Beitrag von rethus » Fr 18. Nov 2016, 10:26

xmurrix hat geschrieben: Ein Fork des CMS mag eventuell aktueller als die 4.8.20 sein, aber auch der Fork ist kein Garant dafür, dass die Seite nach der Installation des Fork und dem PHP Update funktioniert. ...
Auch ein Fork kann nicht dafür sorgen, dass der von euch verwendete Modulcode mit der neuen PHP-Version kompatibel ist. Denn sehr oft gibt es mit Modulen Probleme, da diese vor Jahren programmiert und nie angepasst wurden.
Das Stimmt, das die Module migriert werden müssen, steht hier außer Frage.
Meine Aussage betrifft eigentlich den Core des CMS. Wenn daran alle Arbeiten eingefroren sind, fließen keine Verbesserungen/Sicherheitspatches mehr ein. Dies ist bei dem Fork anders, da es weiterhin aktiv gepflegt wird.
Ob ConLite PHP7 save ist, weiß ich nicht... könnte es mir aber vorstellen.

Wer mich kennt, weiß, dass ich kein Freund davon bin, Energien einer Community durch Splitting aufzuteilen. Ich vertrete eher den Standpunkt, das man kompromissbereit bleibt, um eine bessere Synergie durch die Masse der Beteiligten zu erzielen, auch wenn nicht 100% meiner Vorstellungen und Anregungen umgesetzt werden. Aber Conlite existiert nun mal, und ich möchte aufgrund von Oldperls Qualifikation unterstellen, das es von Ihm professionell weiter betreut wird.
Warum also hier Energien für ein rebirth einer 4.8.20 verschwenden... nur weil dann "Contenido" anstatt "ConLite" auf dem Label steht?

Ich selbst nutze kein ConLite, weil ich lieber auf 4.9 switche. Das ist keine Wertung an ConLite, sondern dem Umstand Rechnung getragen, daß das Contenido-Entwicklerteam größer ist, als ConLite.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4014
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: mod_rewrite gesucht wg. Update Contenido 4.6.15 auf 4.8.

Beitrag von Oldperl » Sa 19. Nov 2016, 12:27

rethus hat geschrieben:Also wenn 4.8.20 dann wohl Conlite - soweit ich weiß müsste die auch bei Upgrade von Conlite auf 4.9 kompatibel sein (ortwin verbessere mich bitte, wenn ich da falsch liege)
Korrekt, daher keine Verbesserung nötig. :D

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt