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

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

28 голосов
/ 17 января 2011

Я нашел пару учебных пособий о том, как включить gzip, но, похоже, у меня ничего не работает, поэтому мой вопрос - как мне включить 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, и мне интересно, возможно ли получить этот файл в сжатом виде, он не передается в сжатом виде, поэтому есть ли способ сделать это?

Ответы [ 6 ]

50 голосов
/ 17 января 2011

Вы пробовали с помощью ob_gzhandler?

php manual

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

Совет: Иногда бывает довольно сложно определить, отправляется ли сжатый веб или нет, яиспользуйте плагин firebug для firefox, я протестировал php-файл без сжатия и со сжатием и сравнил размер, в моем случае разница была 1 МБ (без сжатия) и 56 КБ сжатых.

Или в вашем .htaccess

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css         application/x-javascript application/javascript
</IfModule>
6 голосов
/ 17 января 2011

В официальной вики 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 на стороннем сайте , посвященном этой проблеме.

5 голосов
/ 24 декабря 2017

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

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

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

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

ini_set("zlib.output_compression", 1);

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

5 голосов
/ 04 августа 2015

В 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/

3 голосов
/ 08 июля 2014

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

  1. Для настройки WHM => Easy Apache => Список исчерпывающих опций <здесь включить - <strong>deflate tab>

  2. Для настройки cPanel => Программное обеспечение / Услуги => Оптимизировать веб-сайт <здесь выберите нужный вариант>

1 голос
/ 06 октября 2015

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

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

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

Deflate работает быстро и работает, поэтому я его использую;используйте 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» и возвращаем сжатую версиюфайл (в противном случае обычная версия).Это почти как создание собственного веб-сервера (как весело!).Но на самом деле, попробуйте использовать Apache для сжатия вашего вывода, если вы можете помочь.Вы не хотите обезьяны с вашими файлами.

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

...