Beschleunigung der Webseite durch Zwischenspeichern

Das Board für alle Fragen und Diskussionen, die keinen direkten Bezug zu CMS made simple haben
cyberman

Beschleunigung der Webseite durch Zwischenspeichern

Post 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 ;).
Last edited by cyberman on Sat Sep 18, 2010 5:37 am, edited 1 time in total.
igel
Forum Members
Forum Members
Posts: 39
Joined: Wed May 21, 2008 8:12 pm

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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
cyberman

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post by cyberman »

Welche PHP-Version verwendest du?
igel
Forum Members
Forum Members
Posts: 39
Joined: Wed May 21, 2008 8:12 pm

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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
cyberman

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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
igel
Forum Members
Forum Members
Posts: 39
Joined: Wed May 21, 2008 8:12 pm

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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?
[this message is written with 100% recycled bits]
NaN

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post by NaN »

Wieso bleibst Du nicht bei utf-8 ?
Wozu die Umstellung auf ISO ?
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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?
[this message is written with 100% recycled bits]
cyberman

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post by nockenfell »

Super. Danke für den Link. Hat geklappt.
[this message is written with 100% recycled bits]
Sonya

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post by Sonya »

Hallo,

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

Gruß,
Sonya
cyberman

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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?
Sonya

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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?
cyberman

Re: Beschleunigung der Webseite durch Zwischenspeichern

Post 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 ...
Locked

Return to “Stammtisch”