Apacheをインストールした時に標準でついてくるモジュールのうち、よく使うモジュールと使わないモジュールを分類しました。
自分はメンテナンスがめんどくさいのでApacheはレポジトリの標準のものを利用しています。バージョンは2.2です。
バージョンの調べ方
バージョン情報はapachectlで表示できます。
# apachectl -V
モジュールの機能の調べ方
標準でついてくるモジュールは全て公式サイトのマニュアルに機能の概要と設定方法の詳細が書いてあります。
結構情報量があるので、全部目を通すと言うことは考えなくて良いと思います。が、興味深いモジュールがあるかもしれないので流し読みしてみると良いかもしれません。
必要なモジュールと必要のないモジュール
必要・重要なモジュール
そして肝心のモジュールの一覧がこれです。比較的少ないです。
authn_default_moduleやauthz_default_moduleは将来、認証系のモジュールを追加した時に追加漏れを防ぐために残してあります。
authn_default_module
authz_host_module
authz_default_module
log_config_module
env_module
expires_module
deflate_module
headers_module
setenvif_module
mime_module
dir_module
actions_module
alias_module
rewrite_module
cgi_module
使わないモジュール
使わないモジュールの一覧です。ベーシック認証やダイジェスト認証は人によっては使うと思うので好みに応じて有効化すればよいと思います。
サーバーレベルでのユーザー認証(=Apacheのダイジェスト認証やベーシック認証)は、CGIやPHPのアプリレベルのユーザー認証と違いアプリごとにバグが混入する性質のものでは無いので自分は好きです。
auth_basic_module | ベーシック認証 |
---|---|
auth_digest_module | ダイジェスト認証 |
authn_file_module | 認証情報にファイルを利用する場合に使う → .htpasswordファイル見たいな |
authn_alias_module | 認証情報に複数の情報源を利用するときに便利 |
authn_anon_module | 認証情報として「匿名ユーザー」を認める場合に使う |
authn_dbm_module | 認証情報にDBMを使う。 |
authz_user_module | ユーザー毎にアクセスを管理する |
authz_owner_module | ファイルオーナーを元にアクセスを管理する |
authz_groupfile_module | グループごとにアクセスを管理する |
authz_dbm_module | authz_groupfile_moduleと同様のことをDBMを使う |
次のモジュールは自分は通常のWebサーバーの用途ではあまり使ってないです。が、使っているものもあります。
ldap_module | LDAP連携をする。他のモジュールと組み合わせて使う |
---|---|
authnz_ldap_module | アクセスの管理にLDAPを使う |
include_module | SSIを使う。 → SSI便利だよね |
logio_module | データ転送量をログに記録できるようにする |
ext_filter_module | レスポンスにフィルタをかける → 楽しいけど使わない |
mime_magic_module | ファイルの内容を参照してMIMEタイプを判断する |
usertrack_module | ユーザーをCookieを使ってトラッキングできるようにする → 静的コンテンツでもCookieが出力される!ログにも記録できる! |
dav_module | DAVアクセスできるようにする |
status_module | サーバーの利用状況を出力できるようにする → サーバーの初期導入時には重要! |
autoindex_module | ディレクトリにアクセスした時にファイルの一覧を表示させる。21世紀初頭の現代ではデフォルトで利用する理由は見いだせないし、必要無いので絶対にコメントアウト |
info_module | サーバーの設定情報を出力できるようにする |
dav_fs_module | DAVを利用してファイルシステムにアクセスできるようにする |
negotiation_module | コンテンツネゴシエーション用 → 意外に使わなかった |
speling_module | スペルミスをしても修正してリダイレクトしてくれる |
userdir_module | ローカルユーザー毎に http://example.com/~username/ 形式でWebコンテンツを公開できる |
proxy_module | プロキシ機能 |
proxy_balancer_module | リバースプロキシでバランサーとして動作させる |
proxy_ftp_module | FTPサイトへプロキシできるようにする |
proxy_http_module | HTTPプロキシ機能。リバースプロキシ、フォワードプロキシする時に利用する |
proxy_connect_module | リバースプロキシを提供するときにConnectメソッドを使えるようにする。 → ひょっとしたらWebSocketにも使える? |
cache_module | コンテンツのキャッシュ機能(disk_cache_module,mem_cache_module) |
suexec_module | CGIでsuexecを使えるようにする |
disk_cache_module | ディスクを利用したHTTPキャッシュを提供する |
file_cache_module | サーバー起動時にファイルをメモリに読み込みキャッシュする → ファイル変更時にはサーバー再起動が必要… |
mem_cache_module | メモリを利用したHTTPキャッシュを提供する |
version_module | サーバーのバージョンごとの設定が行えるようになる |
せっかちな人のために…
githubに今すぐコピペできる設定を置いておきました。
# LoadModule auth_basic_module modules/mod_auth_basic.so | |
# LoadModule auth_digest_module modules/mod_auth_digest.so | |
# LoadModule authn_file_module modules/mod_authn_file.so | |
# LoadModule authn_alias_module modules/mod_authn_alias.so | |
# LoadModule authn_anon_module modules/mod_authn_anon.so | |
# LoadModule authn_dbm_module modules/mod_authn_dbm.so | |
LoadModule authn_default_module modules/mod_authn_default.so | |
LoadModule authz_host_module modules/mod_authz_host.so | |
# LoadModule authz_user_module modules/mod_authz_user.so | |
# LoadModule authz_owner_module modules/mod_authz_owner.so | |
# LoadModule authz_groupfile_module modules/mod_authz_groupfile.so | |
# LoadModule authz_dbm_module modules/mod_authz_dbm.so | |
LoadModule authz_default_module modules/mod_authz_default.so | |
# LoadModule ldap_module modules/mod_ldap.so | |
# LoadModule authnz_ldap_module modules/mod_authnz_ldap.so | |
# LoadModule include_module modules/mod_include.so | |
LoadModule log_config_module modules/mod_log_config.so | |
# LoadModule logio_module modules/mod_logio.so | |
LoadModule env_module modules/mod_env.so | |
# LoadModule ext_filter_module modules/mod_ext_filter.so | |
# LoadModule mime_magic_module modules/mod_mime_magic.so | |
LoadModule expires_module modules/mod_expires.so | |
LoadModule deflate_module modules/mod_deflate.so | |
LoadModule headers_module modules/mod_headers.so | |
# LoadModule usertrack_module modules/mod_usertrack.so | |
LoadModule setenvif_module modules/mod_setenvif.so | |
LoadModule mime_module modules/mod_mime.so | |
# LoadModule dav_module modules/mod_dav.so | |
# LoadModule status_module modules/mod_status.so | |
# LoadModule autoindex_module modules/mod_autoindex.so | |
# LoadModule info_module modules/mod_info.so | |
# LoadModule dav_fs_module modules/mod_dav_fs.so | |
# LoadModule vhost_alias_module modules/mod_vhost_alias.so | |
# LoadModule negotiation_module modules/mod_negotiation.so | |
LoadModule dir_module modules/mod_dir.so | |
LoadModule actions_module modules/mod_actions.so | |
# LoadModule speling_module modules/mod_speling.so | |
# LoadModule userdir_module modules/mod_userdir.so | |
LoadModule alias_module modules/mod_alias.so | |
LoadModule rewrite_module modules/mod_rewrite.so | |
# LoadModule proxy_module modules/mod_proxy.so | |
# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so | |
# LoadModule proxy_ftp_module modules/mod_proxy_ftp.so | |
# LoadModule proxy_http_module modules/mod_proxy_http.so | |
# LoadModule proxy_connect_module modules/mod_proxy_connect.so | |
# LoadModule cache_module modules/mod_cache.so | |
# LoadModule suexec_module modules/mod_suexec.so | |
# LoadModule disk_cache_module modules/mod_disk_cache.so | |
# LoadModule file_cache_module modules/mod_file_cache.so | |
# LoadModule mem_cache_module modules/mod_mem_cache.so | |
LoadModule cgi_module modules/mod_cgi.so | |
# LoadModule version_module modules/mod_version.so |
但し、本当にこれをコピペしてhttpdを再起動しても動きません。
これはnegotiation_moduleとautoindex_moduleのディレクティブが標準設定に記載されているためです。適度にhttpd.confを修正して使ってください。
13,311 thoughts on “Apacheで使うモジュール、使わないモジュール”