Как включить gzip?

Я нашел пару уроков о том, как включить gzip, btu ничего не работает для меня, поэтому мой вопрос в том, как включить gzip. Я нахожусь на общем сервере Dreamhost, он работает с PHP версии 5.2 и Apache, из php-информации я нашел эту строку, может быть, это могло бы помочь?

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 

Я также нашел эту строку

 _SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 

Я не знаю, связано ли это с этим. Но это мой первый вопрос, во-вторых, у меня есть Dropbox, размещающий файл javscript, и мне интересно, возможно ли, чтобы этот файл был gzipped, он не переносится сжатым, и так ли это?

вы пробовали с ob_gzhandler?

Руководство пользователя php

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

tip: иногда довольно сложно обнаружить, что сеть отправлена ​​сжатой или нет, я использую плагин firebug от firefox, я протестировал php-файл без сжатия и сжатия и сравнил размер, в моем случае разница была 1mb (без сжатия) и 56kb сжаты.

Или в вашем .htaccess

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

В официальной вики Dreamhost они активируют это, изменяя 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> 

Это в основном проверяет, найден ли mod_czip.c, и если он будет сжимать файлы для вас, поэтому они быстрее отправляются в браузер. Это якобы ускоряет время загрузки 35-40%, а затем размер файла должен, предположительно, снижаться до 55-65%.

С помощью быстрого поиска в Google вы можете найти другой поток на Stackoverflow на стороннем сайте, рассматривая эту проблему.

## Прежде всего, вы должны внести изменения в настройку WHM (сервера), чтобы включить Gzip. После этого внесите изменения в настройку cPanel ##

  1. Для настройки WHM => Easy Apache => Исчерпывающий список опций <здесь enable – deblate tab>

  2. Для настройки cPanel => Sofware / Services => Оптимизировать веб-сайт <здесь выберите вариант, что вы хотите>

В Apache возможность сжатия вывода довольно проста. Добавьте в свой файл .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> 

Источник: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

Сжатие может быть выполнено двумя способами.

У Apache фактически есть два варианта сжатия:

  • mod_deflate проще настроить и является стандартным.
  • mod_gzip кажется более мощным: вы можете предварительно сжать контент.

Дефляция быстро и работает, поэтому я использую ее; используйте mod_gzip, если это плавает на вашей лодке. В любом случае Apache проверяет, отправил ли браузер заголовок «Accept-encoding» и возвращает сжатую или обычную версию файла. Однако некоторые старые браузеры могут иметь проблемы (более подробно), и есть специальные директивы, которые вы можете добавить, чтобы исправить это.

Если вы не можете изменить свой файл .htaccess, вы можете использовать PHP для возврата сжатого содержимого. Дайте вашему HTML-файлу расширение .php и добавьте этот код в начало страницы:

В PHP:

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

Мы проверяем заголовок «Accept-encoding» и возвращаем gzipped версию файла (в противном случае – обычную версию). Это похоже на создание собственного веб-сервера (что весело!). Но на самом деле, попробуйте использовать Apache для сжатия вашего вывода, если вы можете ему помочь. Вы не хотите обезьяны с вашими файлами.

Ссылка: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

Все, что мне нужно было сделать, чтобы включить кодировку на уровне Apache, – это

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

это заставит сервер выполнять необходимую проверку заголовка запроса, сжимать, отправлять связанные заголовки

вы также можете сделать это в своих файлах PHP до ob_start()

 ini_set("zlib.output_compression", 1); 

И чтобы Apache сжимал статические ресурсы (например: .js-файлы, .css-файлы), как сделал Камлеш в своем ответе