wake-up-neo.com

Wie kann ich die Apache gzip-Komprimierung zum Laufen bringen?

Ich kann meine Website nicht dazu bringen, die gzip-Komprimierung zu verwenden.

Ich habe mir kürzlich dieses Video von Chris Coyier bei css-tricks.com angesehen. In dem Video spricht er über die Aktivierung der gzip-Komprimierung, um die Ausführung von Websites zu beschleunigen.

Gemäß seiner Anweisung habe ich über html5boilerplate.com eine Verknüpfung zu github hergestellt, den gzip-Komprimierungscode aus der .htaccess-Datei kopiert, in meine eigene eingefügt und auf meine Website hochgeladen.

Ich habe es über gzipwtf.com getestet und es scheint nicht zu funktionieren. Kann mir jemand dabei helfen?

Meine .htaccess-Datei sieht folgendermaßen aus:

# ----------------------------------------------------------------------
# Trim www
# ----------------------------------------------------------------------

RewriteEngine On
RewriteCond %{HTTP_Host} !^orbitprint.com$ [NC]
RewriteRule ^(.*)$ http://orbitprint.com/$1 [L,R=301]

# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------

<IfModule mod_deflate.c>

  # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  # Compress all output labeled with one of the following MIME-types
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/atom+xml \
                                  application/javascript \
                                  application/json \
                                  application/rss+xml \
                                  application/vnd.ms-fontobject \
                                  application/x-font-ttf \
                                  application/xhtml+xml \
                                  application/xml \
                                  font/opentype \
                                  image/svg+xml \
                                  image/x-icon \
                                  text/css \
                                  text/html \
                                  text/plain \
                                  text/x-component \
                                  text/xml
  </IfModule>

</IfModule>
54
dai.hop

Versuche dies :

####################
# GZIP COMPRESSION #
####################
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
91
Oussama

Es ist besser, es wie im folgenden Snippet zu implementieren.

Fügen Sie einfach den unten stehenden Inhalt in Ihr .htaccess Datei, dann überprüfen Sie die Leistung mit: Google PageSpeed , Pingdom Tools und GTmetrics .

# Enable GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifmodule>

# Expires Headers - 2678400s = 31 days
<ifmodule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType image/gif "access plus 2678400 seconds"
  ExpiresByType image/jpeg "access plus 2678400 seconds"
  ExpiresByType image/png "access plus 2678400 seconds"
  ExpiresByType text/css "access plus 518400 seconds"
  ExpiresByType text/javascript "access plus 2678400 seconds"
  ExpiresByType application/x-javascript "access plus 2678400 seconds"
</ifmodule>

# Cache Headers
<ifmodule mod_headers.c>
  # Cache specified files for 31 days
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  # Cache HTML files for a couple hours
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  # Cache PDFs for a day
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  # Cache Javascripts for 31 days
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</ifmodule>
36
Umut D.

Ihr .htaccess sollte einwandfrei funktionieren. Dies hängt von vier verschiedenen Apache-Modulen ab (eines pro <IfModule> - Anweisung). Ich vermute eine der folgenden:

  • auf Ihrem Apache-Server sind weder die Module "mod_filter", "mod_deflate", "mod_headers" und/oder "mod_setenvif" installiert und werden nicht ausgeführt. Wenn Sie auf die Serverkonfiguration zugreifen können, überprüfen Sie /etc/Apache2/httpd.conf (Und die zugehörigen Apache-Konfigurationsdateien). Andernfalls können Sie sehen, welche Module über phpinfo() im Abschnitt Apache2handler geladen werden (siehe angefügtes Bild). ( [~ # ~] edit [~ # ~] ) ODER Sie können ein Terminalfenster öffnen und den Befehl Sudo apachectl -M eingeben listet die geladenen Module auf;

  • wenn ein interner http 500-Serverfehler auftritt, darf Ihr Server möglicherweise keine .htaccess-Dateien verwenden.

  • sie versuchen, eine PHP Datei zu laden, die ihre eigenen Header sendet (Überschreiben der Apache-Header), wodurch der Browser "verwirrt" wird.

In jedem Fall sollten Sie die Fehlerprotokolle Ihrer Serverkonfiguration und überprüfen, um festzustellen, was falsch läuft. Versuchen Sie zur Sicherheit, den schnellsten vorgeschlagenen Weg zu verwenden hier in Apache-Dokumenten:

AddOutputFilterByType DEFLATE text/html text/plain text/xml

und versuchen Sie dann, eine große Textdatei zu laden (bereinigen Sie vorzugsweise zuerst Ihren Cache).

( [~ # ~] edit [~ # ~] ) Wenn die benötigten Module vorhanden sind (im Apache-Modulverzeichnis), aber nicht geladen sind, bearbeite einfach /etc/Apache2/httpd.conf und füge für jede eine LoadModule Direktive hinzu.

Wenn die benötigten Module nicht vorhanden sind (weder geladen noch im Apache-Modulverzeichnis), fürchte ich, dass die einzige Option die Neuinstallation von Apache (eine vollständige Version) ist.

phpinfo() Apache2handler section

10
Paolo Stefan

Zunächst gehen Sie zu Apache/bin/conf/httpd.conf und stellen Sie sicher, dass mod_deflate.so aktiviert ist.

Gehen Sie dann zur Datei . Htaccess und fügen Sie diese Zeile hinzu:

SetOutputFilter DEFLATE

Dies sollte den gesamten Inhalt als gzip ausgeben, ich habe es ausprobiert und es funktioniert.

7
nrvarun

Wenn Ihr Webhost über C Panel ausgeführt wird, aktivieren Sie G Zip-Komprimierung in Apache C Panel

Gehen Sie zu CPanel und suchen Sie nach der Registerkarte "Software".

Früher wurde die Funktion "Website optimieren" verwendet, jetzt ist jedoch eine neue Option verfügbar, nämlich "MultiPHP INI Editor".

Wählen Sie den Domainnamen aus, den Sie komprimieren möchten.

Scrollen Sie nach unten, bis Sie die Komprimierung der Zip-Ausgabe finden und aktivieren.

Überprüfen Sie nun erneut die G Zip-Komprimierung.

Sie können auch dem Video-Tutorial folgen. https://www.youtube.com/watch?v=o0UDmcpGlZI

2
Shree Sthapit

In meinem Fall habe ich folgenden Code verwendet, um die gzip-Komprimierung im Apache-Webserver zu aktivieren.

  # Compress HTML File, CSS File, JavaScript File, Text File, XML File and Fonts
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE font/otf
    AddOutputFilterByType DEFLATE font/ttf

Ich habe Bezug genommen von http://www.tutsway.com/enable-gzip-compression-using-htacess.php .

2
Manish

Stieß auf dieses Problem mit der gleichen .htaccess-Konfiguration. Ich stellte fest, dass mein Server Javascript-Dateien als text/javascript Anstelle von application/javascript Bereitstellte. Nachdem ich der AddOutputFilterByType -Deklaration text/javascript Hinzugefügt hatte, begann gzip zu funktionieren.

Warum JavaScript als text/javascript Bereitgestellt wurde: Am Anfang meiner .htaccess-Stammdatei befand sich eine AddType 'text/javascript' js - Deklaration. Nachdem Sie es entfernt haben (es wurde fälschlicherweise hinzugefügt), wird Javascript als application/javascript Angezeigt.

2
Ryan Fitzer
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
1
DevWL

In meinem Fall funktionierte nur diese Zeile anhängen

SetOutputFilter DEFLATE

1
Raugaral

Komprimierung über .htaccess aktivieren

Für die meisten Leser wird die Komprimierung durch Hinzufügen von Code zu einer Datei mit dem Namen .htaccess auf ihrem Webhost/Server aktiviert. Dies bedeutet, dass Sie auf Ihrem Webhost zum Dateimanager (oder zu jedem Ort, an dem Sie Dateien hinzufügen oder hochladen) gehen.

Die .htaccess-Datei steuert viele wichtige Dinge für Ihre Site.

Der folgende Code sollte zu Ihrer .htaccess-Datei hinzugefügt werden ...

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Speichern Sie die .htaccess-Datei und aktualisieren Sie dann Ihre Webseite.

Überprüfen Sie mit dem Gzip-Komprimierungswerkzeug , ob Ihre Komprimierung funktioniert.

1
Amuk Saxena