conGzip

Gesperrt
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

conGzip

Beitrag von Dodger77 » Do 11. Feb 2010, 23:09

Mit diesem kleinen Plugin lässt sich das HTML von Contenido-Websites per gzip komprimieren.

Die Nutzung von conGzip ist ganz einfach. Das enthaltene Verzeichnis in die Contenido-Installation entpacken und dann als Mandanten- oder Systemeinstellung die gzip-Komprimierung aktivieren:

Code: Alles auswählen

output    gzip    true
Edit 2010-02-23 12:54: Neue Version Version hochgeladen

Das Plugin setzt Contenido Version 4.8.8 oder höher voraus.
Dateianhänge
conGzip.zip
(2.06 KiB) 172-mal heruntergeladen

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: conGzip

Beitrag von derSteffen » So 21. Feb 2010, 13:28

Vielen Dank für das Plugin.

Das heißt ich muß nur das Plugin im Plugin-Ordner hochladen und beim Mandant die Einstellung vornehmen. Mehr nicht? Keine Schreibrechte beim Ordner ändern, nichts Installieren? Fein!

Kann man denn irgendwie überprüfen ob es funktioniert hat?

Danke

MfG Steffen

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: conGzip

Beitrag von Dodger77 » So 21. Feb 2010, 16:43

Man könnte einfach mal vor Aktivierung die Dateigröße ansehen (z.B. im Firefox unter Extras -> Seiteninformationen) oder man gibt seine Website einfach mal hier ein:

http://www.whatsmyip.org/http_compression/

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: conGzip

Beitrag von derSteffen » Di 23. Feb 2010, 11:39

Danke Dodger

für den Hinweis.

Bei mir tut sich bei den Seiteninformationen gar nichts. Ich habe mal gzip rausgeschmissen und mal drin gelassen. Es ist immer das gleiche.

Ich habe jetzt einmal es unter Mandanteneinstellungen vorgenommen und einmal unter Experteneinstellungen eingetragen.

Die Adresse http://www.whatsmyip.org/http_compression/ sagt mir aber nicht ob meine Seite komprimiert ist, sondern nur wie groß Sie wäre wenn ich Sie komprimieren würde, oder? Weil ich kann hier jede Seite die ich habe eintragen und da wird mir ständig gesagt
http://www.domain.de/ is gzipped
Original Size: 35.33 KB
Gzipped Size: 9 KB
Data Savings: 74.53%
Oder macht das mein Provider mit dem Server schon automatisch? Die Seiteninfo des Firefox sagt mir 35.33 KB.

Meine Infophp sagt folgendes:
HTTP_ACCEPT_ENCODING gzip
Accept-Encoding gzip
Content-Encoding gzip

Klingt doch gut, oder?

Habe ich irgendwas nicht beachtet? Ich nutzt die 4.8.11 mit AMR.

Ich finde in meinem Mandanten jetzt auch folgenden Eintrag:
frontend.no_outputbuffer idart 354
Hat das irgendwas damit zu tun?

Ich danke Dir

MfG Steffen

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: conGzip

Beitrag von Dodger77 » Di 23. Feb 2010, 12:38

Da steht doch
Dann ist bereits die Komprimierung aktiv.

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: conGzip

Beitrag von Dodger77 » Di 23. Feb 2010, 12:56

Ich habe jetzt übrigens eine neue Version hochgeladen (siehe oben). Die bisherige hat zumindest bei einer 4.8.10er-Installation Schwierigkeiten gemacht.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: conGzip

Beitrag von derSteffen » Di 23. Feb 2010, 14:15

Hallo Dodger
steht aber überall. Egal ob ich eine Webseite gezippte habe, egal ob ich da eine staatische Webseite angebe oder eine WCMS-Seite, wo das Plugin gar nicht installiert ist.

Übrigens habe ich mal die neue Version hochgeladen.

Bei mir erscheint dann nur noch eine weiße Seite mit dem Text "Array".

Und diese Seite erscheint auch wenn ich auf false eingebe. Ich habe das Gefühl das die Einstellungen bei den Mandanten-Einstellungen gar nichts bewirken. Kann das sein? Oder ist das ein Cache-Problem?

MfG Steffen

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: conGzip

Beitrag von Dodger77 » Di 23. Feb 2010, 14:30

Wenn das von vornherein dort steht für jede der Seiten auf dem Webspace/bei dem Hoster, dann wird das wahrscheinlich bereits auf anderem Wege umgesetzt (z.B. per mod_deflate, mod_gzip oder der PHP-Einstellung zlib.output_compression).

Aufgrund der Ausgabe "Array" würde ich erstmal empfehlen, den Plugin-Ordner "gzip" wieder zu löschen.

Setzt du eine 4.8.12 ein oder eine frühere Version? In der "cms/front_content.php" der 4.8.12 wird auf die Möglichkeit der Rückgabe eines Array durch die Chains Rücksicht genommen, deshalb sollte das dort nicht auftauchen.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: conGzip

Beitrag von derSteffen » Di 23. Feb 2010, 15:18

Also ich verwende eine 4.8.11!

Was ich aber nicht verstehe warum gibt mir die Webseite (http://www.whatsmyip.org/http_compression/) folgendes Ergebniss aus
http://www.domain.de/ is gzipped
Original Size: 35.33 KB
Gzipped Size: 9 KB
Data Savings: 74.53%
wenn doch gezippt aktiviert ist! Müßte meine Webseie doch 9 KB haben.

Übrigens habe ich deine neue Version mal bei einer 4.8.12 installiert. Hier kommt keine Fehlermeldung, allerdings sehe ich auch keinen Dateigrößen-Unterschied.

Oder liegt das am aktivierten AMR bei mir?

Ich will dich damit ja auch nicht nerven. Dann klappt es halt bei mir nicht so.

MfG Steffen

salula
Beiträge: 18
Registriert: Do 13. Aug 2009, 07:00
Wohnort: Neunkirchen
Kontaktdaten:

Re: conGzip

Beitrag von salula » Do 25. Feb 2010, 09:03

derSteffen hat geschrieben: [...]
Was ich aber nicht verstehe warum gibt mir die Webseite (http://www.whatsmyip.org/http_compression/) folgendes Ergebniss aus
http://www.domain.de/ is gzipped
Original Size: 35.33 KB
Gzipped Size: 9 KB
Data Savings: 74.53%
wenn doch gezippt aktiviert ist! Müßte meine Webseie doch 9 KB haben.
[...]
MfG Steffen
Ich kenn mich da jetzt nicht wirklich aus aber es könnt einfach sein das er dir mit Original Size:35.33KB die Original Filgrösse sagt mit Gzipped Size:9 KB sagt er dir dann, das er davon 9KB einspart, was dann ca. einer Dateigrösse von nur noch 74.53% der Origninalgrösse entspricht.

Aber wie is nur mal ne Idee das man es auch so lesen könnte
Mfg Sascha
Es gibt für (fast) alles mehrere Lösungen und keine davon muss die beste sein sie können alle gut sein
-------------------------------
Auch wenn du gerade Zeit hast um in einem Forum zu sein, so heisst das nicht das mit dieser Zeit gerade noch jemand gesegnet ist:
Also lieber ein bisschen warten als 5 neue Beiträge aufmachen

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: conGzip

Beitrag von Dodger77 » Do 25. Feb 2010, 09:20

@derSteffen: Könntest du mir einfach mal den entsprechenden Link senden per PN oder den hier posten?

Bzgl. der Anzeige von "Array" wäre es schön, wenn du dazu die Version nennen könntest. Das erleichtert die Fehlersuche/-behebung. Bei mir funktioniert das soweit mit 4.8.12 und AMR, aber auch in älteren Versionen (z.B. 4.8.8, 4.8.10; jeweils mit eigenen mod_rewrite-Lösungen).

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: conGzip

Beitrag von Dodger77 » Do 25. Feb 2010, 09:23

Ich habe nun auch oben die Voraussetzung für die Contenido-Version (ab 4.8.8 ) ergänzt.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: conGzip

Beitrag von derSteffen » Sa 27. Feb 2010, 10:49

Hallo Dodger.

Also ich habe jetzt mal golgendes gemacht:
Meine CMS-Version: 4.8.11 mit AMR 0.5.4

Ich habe 3 Versionen von gzip mitbekommen:
Bei der ersten passiert gar nichts.
Bei den anderen neueren wird nur das Wort Array ausgegeben.

Bei einer 4.8.12 mit AMR 0.5.4 kann ich alle drei Versionen hochladen, da passiert gar nichts!

Der Link zur 4.8.11 schicke ich dir gleich per PM.

Danke Dir.

MfG Steffen

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

Re: conGzip

Beitrag von xmurrix » Sa 27. Feb 2010, 13:04

Hallo derSteffen,

die Ausgabe von Array kommt durch ein Fehlverhalten beim Verarbeiten von registrierten CEC-Funktionen. Wird einer Chain mehr als eine Funktion registriert, in diesem Fall sind es vermutlich das AMR-Plugin sowie das gzip-Plugin, da beide sich in die Ausgabe der Seite "einklinken", kann es zu so einem Fehler kommen.

Du hast folgende Möglichkeiten:

1. Anpassen der front_content.php, in der 4.8.11 er Version
In der cms/front_content.php wird ab Zeile 979 die Seite ausgegeben. Den Code

Code: Alles auswählen

                // write html output into output buffer and assign it to an variable
                ob_start();
                eval ("?>\n".$code."\n<?php\n");
                $htmlCode = ob_get_contents();
                ob_end_clean();

                // process CEC Hook to do some preparations before output
                $htmlCode = CEC_Hook::execute('Contenido.Frontend.HTMLCodeOutput', $htmlCode);

                // print output
                echo $htmlCode;
gegen den Code aus einer 4.8.12 er Version ersetzen mit

Code: Alles auswählen

                // write html output into output buffer and assign it to an variable
                ob_start();
                eval ("?>\n".$code."\n<?php\n");
                $htmlCode = ob_get_contents();
                ob_end_clean();

                // process CEC Hook to do some preparations before output
                $htmlCode = CEC_Hook::execute('Contenido.Frontend.HTMLCodeOutput', $htmlCode);

                #If chain execution return value is an array
                if (is_array($htmlCode)) {
                    $htmlCode = $htmlCode[0];
                }

                // print output
                echo $htmlCode;

2. Die AMR Einstellung "Zeitpunkt zum Generieren der URLs" auf "Beim Generieren des Codes der Seite" umstellen
Dann musst du aber dafür sorgen, dass sämtliche Module/Plugins die URLs mit der neuen Methode generieren.


3. Umstellen der GZip Komprimierung
Als Alternative zum Plugin kannst du die GZip-Komprimierung auf eine andere Art und Weise realisieren, und zwar mit ein paar Regeln in der .htaccess und einem zusätzlichen Script im Mandantenverzeichnis.

Dafür legst du im cms/ Verzeichnis eine Datei "front_content.gzip.php" an und schreibst folgendes hinein:

Code: Alles auswählen

<?php
/**
 * GZip compression of output
 */


// start ouput buffer, either with callback 'ob_gzhandler' or without
if (!ob_start('ob_gzhandler')) {
    ob_start();
}

// server variables to modify
foreach (array('PHP_SELF', 'REQUEST_URI', 'SCRIPT_NAME', 'SCRIPT_FILENAME') as $p => $var) {
    if (isset($_SERVER[$var]) && strpos($_SERVER[$var], 'front_content.gzip.php') !== false) {
        str_replace('front_content.gzip.php', 'front_content.php', $_SERVER[$var]);
    }
}

// include front_content.php
include_once('front_content.php');

Nun musst du dafür sorgen, dass Abfragen an die Datei umschrieben werden. Dafür musst du in der .htaccess 2 Regeln angeben:

Code: Alles auswählen


RewriteEngine on
RewriteBase /cms

# anfragen auf front_content.zip.php ignorieren
RewriteRule ^cms/front_content.zip.php.*$ - [L]

# rest an front_content.gzip.php umschreiben
RewriteRule !\.(js|ico|gif|jpg|jpeg|png|css|pdf)$ front_content.gzip.php [NC,QSA,L]
Wenn du eine .htaccess vom AMR-Plugin verwendest, ist die Anpassung einfacher. Das Vorkommen von "front_content.php" gegen "front_content.gzip.php" ersetzen.

Das Ganze funktioniert so:
- Alle Anfragen werden an das neue Script "front_content.gzip.php" umschrieben.
- Der startet, falls möglich, die GZip-Komprimierung, passt ein paar Server-Variablen ab und bindet die eigentliche front_content.php ein.

Einen Nachteil gibt es hierbei natürlich. Das gzip-Plugin ist das Backend konfigurierbar, nicht aber diese Lösung - hierbei muss man an die .htaccess ran...

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Gesperrt