/ / Jak włączyć gzip? - php, apache, .htaccess, gzip

Jak włączyć gzip? - php, apache, .htaccess, gzip

Znalazłem kilka tutoriali, jak to zrobićwłącz gzip, ale nic nie działa dla mnie, więc moje pytanie brzmi: jak włączyć gzip? Jestem na wspólnym serwerze hostingowym Dreamhost, działa PHP w wersji 5.2 i Apache, na podstawie informacji php znalazłem tę linię, może to mogłoby pomóc?

zlib

ZLib Support    enabled
Stream Wrapper support  compress.zlib://
Stream Filter support   zlib.inflate, zlib.deflate
Compiled Version    1.2.3.3
Linked Version  1.2.3.3

Directive   Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level   -1  -1
zlib.output_handler no value    no value

Znalazłem tę linię

_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate

Nie wiem, czy to ma coś z tym wspólnego. Ale to jest moje pierwsze pytanie, po drugie, mam dropboxa, hostowanie pliku javscript, i zastanawiam się, czy można zgrupować ten plik, To nie jest przesyłane w postaci skompresowanej, więc czy jest to jakiś sposób na zrobienie tego?

Odpowiedzi:

48 dla odpowiedzi № 1

Czy próbowałeś z ob_gzhandler?

instrukcja php

<?php
ob_start("ob_gzhandler");
?>
<html>
<body>
<p>This should be a compressed page.</p>
</html>
<body>

Wskazówka: Czasem dość trudno jest wykryć, czy sieć jest wysyłana skompresowana czy nie, używam wtyczki firefox "firebug", testowałem plik php bez kompresji i kompresji i porównywania rozmiaru, w moim przypadku różnica wynosiła 1mb (bez kompresji) i skompresowane 56kb.

Lub w .htaccess

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css         application/x-javascript application/javascript
</IfModule>

6 dla odpowiedzi nr 2

Na oficjalnej stronie wiki Dreamhost umożliwiają to przez modyfikowanie htaccess:

<IfModule mod_gzip.c>
mod_gzip_on       Yes
mod_gzip_dechunk  Yes
mod_gzip_item_include file      .(html?|txt|css|js|php|pl|jpg|png|gif)$
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>

Zasadniczo sprawdza, czy mod_czip.c zostanie znaleziony i jeśli jest, skompresuje pliki, abyś mógł je szybciej wysłać do przeglądarki. To podobno przyśpiesza pobieranie razy 35-40%, a następnie rozmiar pliku powinien spaść do 55-65%.

Dzięki szybkiemu wyszukiwaniu w Google możesz wymyślić inną wątek na Stackoverflow w a strona trzecia strona zajmująca się tym problemem.


4 dla odpowiedzi nr 3

W Apache włączenie kompresji wyjściowej jest dość proste. Dodaj następujące elementy do pliku .htaccess:

# compress text, html, javascript, css, xml:
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

# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>

Źródło : http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/


3 dla odpowiedzi № 4

## Przede wszystkim musisz dokonać zmian w ustawieniu WHM (serwer), aby włączyć Gzip. Następnie wprowadź zmiany w ustawieniu cPanel ##

  1. Ustawienie WHM => Easy Apache => Wyczerpująca lista opcji <tutaj włącza - siadać tab>

  2. Dla ustawienia cPanel => Sofware / Services => Optymalizuj stronę <tutaj wybierz opcję, co chcesz>


2 dla odpowiedzi № 5

Wszystko, co musiałem zrobić, aby włączyć kodowanie na poziomie Apache'a

zlib.output_compression = 1 // the PHP.ini file

to sprawi, że serwer wykona niezbędne sprawdzenie nagłówka żądania, skompresuje, wyśle ​​powiązane nagłówki

możesz to również zrobić w swoich plikach PHP przed ob_start()

ini_set("zlib.output_compression", 1);

Aby Apache kompresował zasoby statyczne (np. Pliki .js, pliki .css), wykonaj jako Kamlesh zrobił w swojej odpowiedzi


1 dla odpowiedzi № 6

Kompresję można przeprowadzić na dwa sposoby.

Apache faktycznie ma dwie opcje kompresji:

  • mod_deflate jest łatwiejszy w konfiguracji i jest standardem.
  • mod_gzip Wydaje się bardziej skuteczne: możesz wstępnie kompresować zawartość.

Deflate jest szybki i działa, więc go używam; posługiwać sięmod_gzip, jeśli pływa twoja łódź. W obu przypadkach Apache sprawdza, czy przeglądarka wysłała nagłówek "Accept-encoding" i zwróciła skompresowaną lub regularną wersję pliku. Jednak niektóre starsze przeglądarki mogą mieć problemy (więcej poniżej) i istnieją specjalne dyrektywy, które możesz dodać, aby to poprawić.

Jeśli nie możesz zmienić pliku .htaccess, możesz użyć PHP, aby zwrócić skompresowaną treść. Nadaj plikowi HTML rozszerzenie .php i dodaj ten kod do góry:

W PHP:

<?php if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’))
ob_start(“ob_gzhandler”); else ob_start(); ?>

Sprawdzamy nagłówek "Accept-encoding" i zwracamyspakowana wersja pliku (w przeciwnym wypadku wersja standardowa). To prawie jak budowanie własnego serwera WWW (co za zabawa!). Ale naprawdę, spróbuj użyć Apache do skompresowania danych wyjściowych, jeśli możesz pomóc. Nie chcesz małpować z plikami.

Odniesienie: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/