2011-01-17 35 views
22

Tôi đã tìm thấy một vài hướng dẫn về cách bật gzip, btu dường như không có tác dụng đối với tôi, vì vậy câu hỏi của tôi là làm cách nào để tôi bật gzip. Tôi đang trên một máy chủ Dreamhost chia sẻ, Nó đang chạy PHP phiên bản 5.2, và Apache, từ các thông tin php tôi đã tìm thấy dòng này, có lẽ điều này có thể giúp đỡ?Làm cách nào để bật 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 

Tôi cũng đã tìm thấy dòng này

_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 

Tôi không biết nếu có bất cứ điều gì để làm với nó. Nhưng đó là câu hỏi đầu tiên của tôi, thứ hai, tôi có dropbox, lưu trữ một tập tin javscript, và tôi tự hỏi là nó có thể có tập tin đó gzipped, Nó không được chuyển giao nén, do đó, có cách nào để làm như vậy?

+0

Những gì bạn muốn gzip cho? Sử dụng các hàm gzip PHP? Nén đầu ra của máy chủ web của bạn? Nếu đó là sau này, cài đặt 'mod_deflate', và thử [serverfault.com] (http://serverfault.com) nếu bạn có bất kỳ vấn đề/câu hỏi nào. – netcoder

Trả lời

43

bạn đã thử với ob_gzhandler chưa?

php manual

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

tip: đôi khi là khá khó khăn để phát hiện nếu web là gửi nén hay không, tôi sử dụng plugin firebug firefox của, tôi đã kiểm tra một file php mà không nén và với khả năng nén và so sánh kích thước, trong trường hợp của tôi, sự khác biệt là 1mb (không nén) và 56kb nén.

Hoặc trong .htaccess của bạn

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

Điều gì về bản định kiểu và các bản Javascripts? tôi đã đoán nó sẽ có nhiều hơn một điều .htaccess. tôi sẽ cố gắng này mặc dù. – mcbeav

+0

Theo như tôi có thể thấy điều đó không mang lại cho tôi bất kỳ kết quả nào. – mcbeav

+0

.... – magallanes

5

Trong wiki chính thức của Dreamhost họ cho phép điều này bằng cách 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> 

này về cơ bản sẽ kiểm tra xem nếu mod_czip.c được tìm thấy và nếu nó sẽ nén các tập tin cho bạn để chúng nhanh hơn để gửi cho trình duyệt. Điều này được cho là tăng tốc độ tải xuống 35-40% và sau đó kích thước tệp được cho là giảm xuống 55-65%.

Với tìm kiếm nhanh trên Google, bạn có thể tìm một trang khác thread on Stackoverflow trong một trang web third party giải quyết vấn đề này.

+0

Điều này rất cũ. Với Apache 2, tốt nhất bạn nên sử dụng 'mod_deflate.c'. – VSG24

+0

Bạn bao gồm các tệp như 'jpg/png/gif' và sau đó bạn cấm chúng thông qua hình ảnh' mime /.* '. Không thực sự có ý nghĩa với tôi. – mgutt

2

## Trước hết, bạn phải thực hiện thay đổi trong cài đặt WHM (máy chủ) để bật Gzip. Sau đó thực hiện thay đổi trong cPanel thiết lập ##

  1. Đối với thiết lập WHM => Dễ dàng Apache => tiêts Options List < đây cho phép - deflate tab>

  2. Đối với cPanel thiết lập => sofware/Dịch vụ => Tối ưu hóa website < đây chọn tùy chọn những gì bạn muốn>

3

Trong Apache, cho phép nén đầu ra khá đơn giản. Thêm mục sau vào 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> 

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

+0

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

1

Các nén có thể được thực hiện theo hai cách khác nhau.

Apache thực sự có hai tùy chọn nén:

  • mod_deflate là dễ dàng hơn để thiết lập và là tiêu chuẩn.
  • mod_gzip có vẻ mạnh hơn: bạn có thể nén trước nội dung.

Làm lệch nhanh và hoạt động, vì vậy tôi sử dụng nó; sử dụng mod_gzip nếu nó nổi thuyền của bạn. Trong cả hai trường hợp, Apache sẽ kiểm tra xem trình duyệt có gửi tiêu đề “Accept-encoding” hay không và trả về phiên bản nén hoặc thường xuyên của tệp. Tuy nhiên, một số trình duyệt cũ hơn có thể gặp sự cố (bên dưới) và có các chỉ thị đặc biệt mà bạn có thể thêm để sửa lỗi này.

Nếu bạn không thể thay đổi tệp .htaccess của mình, bạn có thể sử dụng PHP để trả lại nội dung đã nén. Cung cấp cho tập tin HTML của bạn một phần mở rộng .php và thêm mã này lên trên cùng:

Trong PHP:

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

Chúng tôi kiểm tra “Accept-Encoding” header và trả về một phiên bản đã giải nén các tập tin (nếu không phiên bản thông thường). Điều này gần giống như xây dựng máy chủ web của riêng bạn (những gì thú vị!). Nhưng thực sự, hãy thử sử dụng Apache để nén đầu ra của bạn nếu bạn có thể giúp nó. Bạn không muốn khỉ với các tập tin của bạn.

tham khảo: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

0

Tất cả tôi phải làm gì để cho phép mã hóa ở cấp Apache là

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

này sẽ làm cho máy chủ làm theo yêu cầu kiểm tra tiêu đề cần thiết, nén, gửi có liên quan tiêu đề

bạn cũng có thể làm điều đó trong tệp PHP của mình trước ob_start()

ini_set("zlib.output_compression", 1); 

Và để làm cho Apache nén các tài nguyên tĩnh (ví dụ: .js, file .css) làm như Kamlesh đã làm trong câu trả lời của ông

Các vấn đề liên quan