2011-01-17 17 views
22

Ho trovato un paio di tutorial su come abilitare gzip, btu niente sembra funzionare per me, quindi la mia domanda è come abilitare gzip. Sono su un server Dreamhost condiviso, è in esecuzione la versione 5.2 di PHP, e Apache, dalle informazioni php ho trovato questa linea, forse questo potrebbe aiutare?Come abilitare gzip?

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 

Ho anche trovato questa linea

_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 

Non so se questo abbia a che fare con esso. Ma questa è la mia prima domanda, in secondo luogo, ho dropbox, hosting di un file javscript, e mi chiedo se è possibile che il file sia gzip, non viene trasferito compresso, quindi c'è un modo per farlo?

+0

Cosa vuoi gzip per? Usando le funzioni gzip di PHP? Comprimere l'output del tuo server web? Se è il secondo, installa 'mod_deflate', e prova [serverfault.com] (http://serverfault.com) se hai problemi/domande che lo fanno. – netcoder

risposta

43

hai provato con ob_gzhandler?

php manual

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

punta: a volte è piuttosto difficile da rilevare se il web è inviare compressa o no, io uso plug-Firebug di Firefox, ho provato un file php senza compressione e con la compressione e confrontare le dimensioni, nel mio caso, la differenza era 1mb (non compressa) e 56kb compressi.

o nel vostro .htaccess

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

cosa dire del foglio di stile e dei javascript? stavo pensando che sarebbe più una cosa .htaccess. lo proverò comunque. – mcbeav

+0

Per quanto posso vedere, non mi sta dando alcun risultato. – mcbeav

+0

.... – magallanes

5

Nel wiki ufficiale di DreamHost permettono questo modifying an 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> 

Questo controlla fondamentalmente per vedere se viene trovato mod_czip.c e se comprimerà i file in modo che siano più veloci da inviare al browser. Questo presumibilmente accelera i tempi di download del 35-40%, e quindi le dimensioni del file dovrebbero presumibilmente scendere al 55-65%.

Con una rapida ricerca su Google è possibile trovare un altro thread on Stackoverflow una in un sito third party affrontare la questione.

+0

Questo è molto vecchio. Con Apache 2 è preferibile usare 'mod_deflate.c'. – VSG24

+0

Si includono file come 'jpg/png/gif' e in seguito si proibiscono loro tramite la mima' image /.* '. Non ha davvero senso per me. – mgutt

2

## Prima di tutto è necessario apportare modifiche alle impostazioni WHM (server) per abilitare Gzip. Dopo di che apportare modifiche in cPanel impostazione ##

  1. Per impostazione GSA => Facile Apache => esaustiva Lista opzioni < qui attivare - sgonfiare scheda>

  2. Per cPanel impostazione => Sofware/Servizi => Ottimizza Sito < qui scegliere l'opzione ciò che si vuole>

3

In Apache, abilitare la compressione dell'output è abbastanza semplice. Aggiungere quanto segue al file .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> 

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

+0

http://www.giftofspeed.com/enable-gzip-compression/ – Kamlesh

1

La compressione può essere fatto in due modi.

Apache in realtà ha due opzioni di compressione:

  • mod_deflate è più facile da configurare e è standard.
  • mod_gzip sembra più potente: è possibile precomprimere il contenuto.

Deflate è veloce e funziona, quindi lo uso; usa mod_gzip se questo fa galleggiare la tua barca. In entrambi i casi, Apache verifica se il browser ha inviato l'intestazione "Accept-encoding" e restituisce la versione compressa o regolare del file. Tuttavia, alcuni browser più vecchi potrebbero avere problemi (più sotto) e ci sono direttive speciali che puoi aggiungere per correggere questo problema.

Se non è possibile modificare il file .htaccess, è possibile utilizzare PHP per restituire contenuto compresso. Dare vostro file HTML l'estensione .php e aggiungere questo codice alla parte superiore:

In PHP:

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

Noi controllare il “Accept-Encoding” e restituire una versione gzip del file (altrimenti il versione normale). Questo è quasi come costruire il proprio server web (che divertimento!). Ma davvero, prova ad usare Apache per comprimere l'output se puoi aiutarlo. Non vuoi scimmiottare con i tuoi file.

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

0

Tutto quello che dovevo fare per abilitare la codifica a livello di Apache è

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

questo renderà il server fare il necessario controllo di intestazione della richiesta, comprimere, correlati invia intestazioni

si può anche farlo nei file PHP prima del ob_start()

ini_set("zlib.output_compression", 1); 

E per rendere Apache comprimere le risorse statiche (per esempio: .js file, file css) fanno come Kamlesh fatto nella sua risposta