Подтвердить что ты не робот

Как включить 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, он не переносится сжатым, и так ли это сделать?

4b9b3361

Ответ 1

Вы пытаетесь использовать ob_gzhandler?

руководство php

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

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

Или в вашем .htaccess

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

Ответ 2

В официальной вики 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 вы можете найти еще один fooobar.com/questions/244186/... a в сторонний, рассматривающий эту проблему.

Ответ 3

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

  • Для настройки WHM = > Easy Apache = > Исчерпывающий список опций < здесь enable - deflate вкладкa >

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

Ответ 4

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

Ответ 5

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

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/

Ответ 6

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

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

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

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

ini_set("zlib.output_compression", 1);

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