Frage

Ich habe ein Konto Flüssiges Web VPS habe ich darauf geachtet, dass mod_deflate installiert ist und läuft / aktiv ist.

Früher habe ich meine CSS und JS-Dateien über PHP gzip, sowie meine PHP-Dateien selbst ... Aber ich versuche jetzt diese über mod_deflate zu tun, und es scheint zu funktionieren für alle Dateien mit Ausnahme von PHP Dateien. (Txt-Dateien funktionieren, css, js, statische HTML-Dateien, einfach nichts, das über eine PHP-Datei generiert wird.) Wie kann ich dieses Problem beheben?

(I verwendet, um die „Komprimiert alle Inhalte“ Option unter „Optimieren Website“ in cPanel, die im Home-Verzeichnis (nicht public_html eine .htaccess-Datei erstellt, eine Stufe höher als das) mit genau dem gleichen Text als „Kompresse alles außer Bilder“Beispiel auf http://httpd.apache.org/docs/ 2.0 / mod / mod_deflate.html )

.htaccess-Datei:

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    <IfModule mod_setenvif.c>
        # Netscape 4.x has some problems...
        BrowserMatch ^Mozilla/4 gzip-only-text/html

        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip

        # MSIE masquerades as Netscape, but it is fine
        # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

        # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
        # the above regex won't work. You can use the following
        # workaround to get the desired effect:
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

        # Don't compress images
        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    </IfModule>

    <IfModule mod_headers.c>
        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
</IfModule>
War es hilfreich?

Lösung

Es ist ein gewesen Weile, da ich diese Frage geschrieben -. Ich landete ermöglicht zlib-Kompression über PHP.ini so zlib komprimiert PHP ausgegeben, während mod_deflate komprimiert alles andere

Ich denke, der Grund, es nicht funktioniert (mod_deflate wurde nicht PHP Ausgabe komprimiert) hat mit PHP läuft als CGI und nicht ein Apache DSO ...

zu tun

Andere Tipps

PHP-Dateien dienen in der Regel text/html Inhalt (obwohl Sie auch Bilder erzeugen können, und so ziemlich alles). PHP-Dateien werden nie an den Client gesendet: es verarbeitet wird Inhalt (text/html oder Bilder) zu erzeugen. Sie suchen diesen Inhalt gzip.

Sie können zlib.output_compression = On auf die Datei php.ini-Konfigurationsdatei hinzufügen. Das wird die Ausgabe unabhängig von mod_deflate komprimieren.

Das ganze config Weg obsolet. Es kann und soll nun gelöscht werden. Netscape 4 nicht für eine lange Zeit schon, und Einstellung Vary: User-Agent unnötig behindert das Caching

Die einzige mod_deflate Config Sie brauchen, ist eine Zeile deflate einzuschalten für kompressible Medien-Typen, entweder mit AddOutputFilter komprimierbaren Dateien nach Erweiterung zu wählen, oder AddOutputFilterByType wählen, um sie durch zurück Content-Type.

Sie benötigen mod_deflate Richtlinien außerhalb Directory-Abschnitt zu bewegen. Definieren Sie Ihre Regeln global für mod_deflate in Ihrem httpd.conf

Für den Fall, jemand mit dem gleichen Problem endet hier oben.

Ich schaltete mod_deflate auf meinem Server. Ich konnte aus der Antwort-Header in meinem Browser sehen, dass Text, CSS und Javascript-Dateien wurden mit gzip komprimiert werden. HTML-Dateien waren nicht komprimiert wird nach den Headern.

Es stellt sich heraus, es ist mein Virenschutz war. Es wurde Abfangen der eingehenden HTTP-Anforderung, und wenn es <html> Tags in der Reaktion gesehen würde es sie dekomprimieren und seine eigene JavaScript in die Seite als Teil seiner „Web Anti-Virus“ ein. Es wäre aus der Antwort der gzip-Header abstreifen und es unkomprimiert liefern.

So wurde der Server richtig Gzipping alles, und mein Anti-Virus wurde unzipping es, bevor es zu mir.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top