Apacheで不要なconfファイルを削除する

2022年6月17日

前提

書くこと/書かないこと

Apacheをインストールした状態では、conf.dの下にある不要な設定が有効になっています。

インストールの目的にもよっても異なるのですが、インターネット向けWebサービスを構築する際に不要と思われる設定の外し方を書きます。

環境

AlmaLinux 8.6 ※CentOS8代替OS

Apache/2.4.37 (AlmaLinux)

さくっと

まず、apacheの設定ファイルの構成を確認します。
環境によって若干異なると思いますが、conf、conf.d、conf.module.dの中身を見ると下記のようになっています。

/etc/httpd/
├ conf
│ ├ httpd.conf
│ └ magic
├ conf.d
│ ├ README
│ ├ autoindex.conf
│ ├ php.conf
│ ├ ssl.conf
│ ├ ssl.conf.rpmnew
│ ├ userdir.conf
│ └ welcome.conf
└ conf.modules.d
  ├ 00-base.conf
  ├ 00-dav.conf
  ├ 00-lua.conf
  ├ 00-mpm.conf
  ├ 00-optional.conf
  ├ 00-proxy.conf
  ├ 00-ssl.conf
  ├ 00-systemd.conf
  ├ 01-cgi.conf
  ├ 10-h2.conf
  ├ 10-proxy_h2.conf
  ├ 20-php.conf
  └ README

まず、httpd.confを見ると、下記の記述が見つかります。

(省略)
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Include conf.modules.d/*.conf
(省略)
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf

conf.module.dとconf.dの下にある.confで終わるファイルはすべて読み込まれていることがわかりました。
そのため、読み込まないようにするにはファイルを消すか、.confで終わらないようにすればOKです。

まずはconf.dから、インターネット向けWebサービスでは通常、autoindex.conf、userdir.conf、welcome.confは不要なのでファイル名を変更して読み込まれないようにします。今回はファイル名の末尾に.deleteを付します。)。

mv /etc/httpd/conf.d/autoindex.conf{,.delete}
mv /etc/httpd/conf.d/userdir.conf{,.delete}
mv /etc/httpd/conf.d/welcome.conf{,.delete}

次はconf.module.dです。00-dav.conf、00-lua.conf、01-cgi.confは使わないので同様にファイル名を変更して読み込まれないようにします。

mv /etc/httpd/conf.modules.d/00-dav.conf{,.delete}
mv /etc/httpd/conf.modules.d/00-lua.conf{,.delete}
mv /etc/httpd/conf.modules.d/01-cgi.conf{,.delete}

設定に問題が起きていないことを確認します。

apachectl configtest

Syntax OKが表示されたらOKです。

設定を有効にするためにapacheを再起動します。

systemctl restart httpd.service

これでよし。

こってりと

時間とができてやる気が出たら加筆します(しないかも)。