Apache gzipでファイルを圧縮して転送する

Apacheのgzipでファイルを圧縮して転送するサンプルです。

確認環境
・XAMPP 7.3.6
・Apache 2.4.39
・Windows 10

目次

ファイルを圧縮 環境
  .htaccessファイルを作成する(mod_filter,mod_deflate)
  httpd.confファイルを修正する
  Chromeでファイルの転送結果を確認する

環境

Apacehの環境に.htaccessファイルを配置し、gzipでファイルが圧縮されて転送されることを確認します。
index.phpが圧縮する対象のファイルです。中身はテキストのみです。
D:\xampp\htdocs\phptest\index.php

XAMPPの環境です。
XAMPP インストールと動かす手順(Windows10)

.htaccessファイルを作成する

.htaccessファイルを新規作成しますが、Windowsのエクスプローラーからだと、先頭がドットで拡張子がないファイルを作成できません。

そのため、一旦ファイルを作成した後、DOSプロンプトでファイル名を変更します。

D:\xampp\htdocs\phptest>ren htaccess .htaccess

renは、ファイル名を変更するコマンドです。

作成した.htaccessファイルに以下を追加します。

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
</IfModule>

deflateは、空気を抜く、しぼませるという意味です。

httpd.confファイルを修正する(mod_filter,mod_deflate)

httpd.confのmod_filterとmod_deflateのコメント(#)を外します。

LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so

mod_filter.soのコメントを外していない場合、Apacheのerror.logに以下が出力されます。

[core:alert] [pid 13528:tid 1896] [client ::1:52339] D:/xampp/htdocs/phptest/.htaccess: Invalid command 'AddOutputFilterByType', perhaps misspelled or defined by a module not included in the server configuration

ログの場所

Apacheのerror.logは、apacheフォルダのlogsフォルダ配下にあります。

D:\xampp\apache\logs

Chromeでファイルの転送結果を確認する

ブラウザのGoogle Chromeでファイルの転送結果を確認します。
Chromeを立ち上げNetworkタブを開きます。

Networkタブの表示方法は以下を参照願います。
Google Chrome Networkタブの見方

設定前

設定前のResponse Headresです。ConnectionとContent-Lengthの間に、Content-Encodingはありません。

設定後

設定後のResponse Headresです。ConnectionとContent-Lengthの間に、Content-Encoding:gzipがあります。gzipが設定されたことを確認できました。

転送容量の確認

Sizeは転送容量です。上段が圧縮後の容量で535Bです。
下段は、圧縮前の容量で10.9KBです。圧縮されていることが確認できました。

設定変更時に必要なこと

ファイルを書き換える設定をした場合は、Apacheを再起動します。

関連の記事

Apache logrotateによるログローテーションの設定

△上に戻る