Page 1 of 6

Beschleunigung der Webseite durch Zwischenspeichern

Posted: Sun Aug 17, 2008 6:24 pm
by cyberman
Wer von Euch auch die englischsprachigen Foren verfolgt, wird sicherlich auch schon mal den Thread „Full page caching mod“ von kermit gelesen haben:

http://forum.cmsmadesimple.org/index.ph ... 23244.html

Im wesentlichen geht es darum, eher statische Seiten wie etwa Impressum, Datenschutzerklärung o.ä. im Cache zwischenzuspeichern und damit die Performance um den Faktor 10-20 zu erhöhen.

Dafür muss die index.php modifiziert werden. Aufgrund der Tatsache, dass darin bestimmte Werte gesetzt werden können bzw. müssen, die jedoch gegenwärtig nicht über die Administration geändert werden können, wurde davon abgesehen, dies standardmäßig in die Version 1.4 zu übernehmen.

Nichts desto trotz finde ich diese Funktionalität sehr wichtig – selbst Typo3 kommt mit einer static-Option daher. Lange Rede, kurzer Sinn – die modifizierte index.php kann hier herunter geladen werden:

http://cmsms-mods.googlecode.com/files/index.zip

Die Steuerung erfolgt über die Option „Zwischenspeichern“ in der Registerkarte „Optionen“ - damit kann beim Erstellen der Seite festgelegt werden, ob die Seite zwischengespeichert (also statisch gemacht) werden soll oder auch nicht.

Das hat jedoch zur Folge, dass Änderungen an einer Webseite nicht sofort, sondern erst nach dem Leeren des Zwischenspeichers (Administrator > Globale Einstellungen) sichtbar werden.

Aber auch das lässt sich automatisieren. Dafür muss nur ein kleiner Benutzerdefinierter Tag mit folgendem Inhalt erstellt werden:

Code: Select all

$smarty->clear_all_cache();
Dieser Tag kann dann über die Ereignisverwaltung (Erweiterungen > Ereignisverwaltung) jedem beliebigen Ereignis zugeordnet werden (sofern das Modul die entsprechenden Ereignisse bereit stellt). Über diesen Trick lassen sich letzten Endes auch dynamische Seiten wie News, Gästebücher und ähnliches statisch betreiben ;).

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Sun Aug 31, 2008 10:04 am
by igel
Hallo,
da ich mit den Ladezeiten meiner Seiten nicht zufrieden bin und schon etliche Tipps zur Steigerung der Performance ausprobiert hatte, habe ich jetzt auch mal die angebotene index.php eingesetzt.

Häkchen bei "Zwischenspeichern" ist wieder gesetzt und Zwischenspeicher geleert.
Das Ergebnis ist:

Warning: file_get_contents() expects at most 2 parameters, 3 given in /xxx[email][/email]/htdocs/cms/index.php on line 131

Habe ich etwas übersehen?

Gruß
Inge

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Wed Sep 10, 2008 6:25 pm
by cyberman
Welche PHP-Version verwendest du?

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Wed Sep 10, 2008 9:00 pm
by igel
Hallo,

war unter PHP Version 4.4.9, .
Auf einem Server konnte ich inzwischen auf PHP 5 wechseln  und damit ist der Fehler ja verschwunden.

Kann es für PHP 4 a auch noch eine Ersatzfunktion geben, wie für file_put_contents?

Gruß
Inge

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Thu Sep 11, 2008 4:41 pm
by cyberman
igel wrote: Auf einem Server konnte ich inzwischen auf PHP 5 wechseln  und damit ist der Fehler ja verschwunden.
Lt. Kermit ist es grundsätzlich unter PHP5 getestet.
Kann es für PHP 4 a auch noch eine Ersatzfunktion geben, wie für file_put_contents?
http://forum.cmsmadesimple.org/index.ph ... #msg113045

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Thu Sep 11, 2008 5:21 pm
by igel
Hallo,

danke für Deine Antwort.

In dem von Dir genannten Link hatte ich die Anpassung von 'file_put_contents' für PHP4 gesehen und auch, daß das  bereits in der modifizierten index.php enthalten ist.
Darum hatte ich den Versuch unter PHP 4 gewagt.

Daß nun aber 'file_get_contents()' hier den Fehler auslöst, damit habe ich nicht gerechnet und kann auch in dem genannten Thread nichts dazu entdecken.

Selber anpassen kann ich das leider auch nicht, also müssen Server mit PHP4 leider drauf verzichten.  Schade auch. :'(

Gruß
Inge

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Fri Sep 19, 2008 12:32 pm
by nockenfell
Das Caching macht nach der Umstellung von utf-8 auf iso-8859-1 Probleme. Beim ersten mal laden der Seite werden die Umlaute richtig dargestellt. Sobald ich die Seite jedoch neu Lade (F5) werden die Umlaute durch Sonderzeichen (irgend so eine Box die wie 2 Dominosteine aussehen) ersetzt.

Nach dem ich nun wieder die normale index.php einsetze, habe ich das Problem nicht mehr. Ich bin dem ganzen jedoch noch nicht auf die Spur gekommen.

Hat einer eine Idee welche Funktion dafür verantwortlich sein könnte?

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Fri Sep 19, 2008 1:47 pm
by NaN
Wieso bleibst Du nicht bei utf-8 ?
Wozu die Umstellung auf ISO ?

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Fri Sep 19, 2008 2:16 pm
by nockenfell
NaN wrote: Wieso bleibst Du nicht bei utf-8 ?
Wozu die Umstellung auf ISO ?
Ich hab von früher noch einige Scripts und DB Schnippsel die in iso-8859-1 kodiert sind. Damit ich dies ohne grosse Anpassungen übernehmen kann, hoffte ich, dass die Umstellung auf iso-8859-1 hier Vorteile erbringen könnte.

Scheint aber nicht unbedingt so.

Muss mal die utf8_decode/encode funktionen von PHP anschauen. Ev könnten die auch eine Lösung sein.

Hier gleich eine andere Frage: Ich habe eine Textdatei mit Umlauten die normal in Windows notepad erstellt wurde. Wenn ich diese mit einer selber geschriebenen Funktion auslese, werden die Umlaute mit Fragezeichen (schwarzes Symbol) dargestellt. Hier werde ich mal die utf8 Funktionen von PHP ausprobieren. Mal schauen ob dies hier eine Lösung ist.

Hat einer von euch hier Erfahrungen?

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Sat Sep 20, 2008 5:01 pm
by cyberman
nockenfell wrote: Ich hab von früher noch einige Scripts und DB Schnippsel die in iso-8859-1 kodiert sind. Damit ich dies ohne grosse Anpassungen übernehmen kann, hoffte ich, dass die Umstellung auf iso-8859-1 hier Vorteile erbringen könnte.
http://forum.mysqldumper.de/viewtopic.php?p=19187#19187

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Sat Sep 20, 2008 6:49 pm
by nockenfell
Super. Danke für den Link. Hat geklappt.

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Tue Oct 07, 2008 8:44 pm
by Sonya
Hallo,

hat jemand die Modifizierung mit FrontEndUsers oder anderen dynamischen Modules ausprobiert? Ich wäre dankbar für ein Feedback.

Gruß,
Sonya

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Wed Oct 08, 2008 5:51 pm
by cyberman
Sonya wrote: hat jemand die Modifizierung mit FrontEndUsers oder anderen dynamischen Modules ausprobiert?
Ähmm, hab ich da etwas verpasst?

Standen die im gleichen Thread?

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Wed Oct 08, 2008 5:59 pm
by Sonya
cyberman wrote:
Sonya wrote: hat jemand die Modifizierung mit FrontEndUsers oder anderen dynamischen Modules ausprobiert?
Ähmm, hab ich da etwas verpasst?

Standen die im gleichen Thread?
Ähmm :) Im gleichen Thread? Weiß ich nicht gerade, was Du meinst.  ???

Werde aber auf meine Frage antworten: Nein, das funktioniert nicht mit FrontEndUsers. Allerdings bin gerade dabei, etwas auszuprobieren. Ich speichere im Dateinamen (Cache-Dateiname) zusätzlich die ID von FrontEndUser. Damit kriegt jeder User sein eigenes Cache. Beim Ausloggen oder ändern der User-Daten wird der User-Cache geleert. Ich weiß überhaupt nicht, ob so etwas perfomant sein wird, bei mir tummeln sich etwa 2000 eingeloggte User auf der Seite und 3000 nicht eingeloggte. Die letzten kriegen einen gemeinsamen Cache, die eingeloggten jeweils eigenen.

Eine andere Lösung wäre, wenn der User eingeloggt ist, gar nicht zu cachen und wenn nicht eingeloggt - ab in den Cache. Was hälst Du davon? Ich bin gerade kein Cache-Profi. Bin ich da auf dem richtigen Weg?

Re: Beschleunigung der Webseite durch Zwischenspeichern

Posted: Wed Oct 08, 2008 6:31 pm
by cyberman
Sonya wrote: Ähmm :) Im gleichen Thread? Weiß ich nicht gerade, was Du meinst.  ???
cyberman wrote: Wer von Euch auch die englischsprachigen Foren verfolgt, wird sicherlich auch schon mal den Thread „Full page caching mod“ von kermit gelesen haben:

http://forum.cmsmadesimple.org/index.ph ... 23244.html
Aus dem ersten Posting dieses Threads  ;D.
Ich weiß überhaupt nicht, ob so etwas perfomant sein wird,
Nach meinem Verständnis macht es für einen User eher keinen Sinn, zumal es beim Ausloggen eh gelöscht wird (abgesehen von der gigantischen Datenmenge, die durch die 2000 User produziert wird).

Ich würde hier eher einen Bezug zur Gruppe herstellen, z. Bsp. der Gruppenname (natürlich md5-encodiert). 'ne ID lässt sich von Außenstehenden zu einfach durch Ausprobieren nachvollziehen und dann wären die Daten wieder nicht sicher.
Eine andere Lösung wäre, wenn der User eingeloggt ist, gar nicht zu cachen und wenn nicht eingeloggt - ab in den Cache.
Ja, so wäre der Systemstandard ...