Apacheをインストール後に「http.conf」という設定ファイルの編集を行います。必要最低限編集した方がよい項目もありますが、サーバーの環境や用途により編集する項目などは様々です。設定ファイルも「http.conf」だけでなく文字コードに関する設定ファイルやSSLに関する設定ファイルなど設定項目は多岐にわたります。本コラムでは、設定ファイルの基本的と編集方法についていくつかの項目編集と合わせて解説します。
目次
1.1 Windows用Apacheサーバーの配布について
1.2 設定ファイルの場所
2.1 設定ファイルの構成
2.2 変数設定[Define SRVROOT]
2.3 [ServerRoot]ディレクティブ
1. Apacheサーバーの環境
1.1 Windows用Apacheサーバーの配布について
Apacheソースコードの最新版は本家本元のApache HTTP Server Project(https://www.apache.org/)から入手できますが、Windows用のインストーラーやバイナリパッケージは配布していません。サードパーティのサイトなどからインストールするように本家サイトでも案内しています。Apacheを配布している主な製品は以下の通りです。
「ApacheHaus」
「Apache Lounge」
「BitNami WAMP Stack」
「WampServer」
「XAMPP」
製品により Apache がインストールされるフォルダーの構成や設定ファイルが多少異なる部分もありますが、Apachの基本構造は一緒ですので、一つインストールして設定を把握すれば十分応用がききます。本コラムでは「ApacheHaus」からダウンロードしたApacheサーバーの設定ファイルの中身について解説してゆきます。Apacheサーバーの環境が整っていない場合は、別コラムの「Apache サーバーをインストールする方法」を参考にApacheの環境を整えて下さい。
1.2 設定ファイルの場所
Apacheのインストール先は、「C:\xampp\apache」や「C:¥Apache24」、または自身で作成したフォルダー内など製品ごとに多少異なりますが、「apache」と名前のつくフォルダー直下の「conf」フォルダー内にあります。「ApacheHaus」であれば「インストールフォルダー¥Apache24¥conf¥」フォルダーの中に設定ファイルの「httpd.conf」があります。
●「httpd.conf」
「conf」フォルダーの中にはオリジナルの設定ファイルが入っている「original」フォルダーや「httpd.conf」ファイルに追加で設定可能なファイルが保存されている「extra」フォルダーなどがあります。「original」フォルダーの中にも「httpd.conf」ファイルがありますが「conf」フォルダー直下の設定ファイル(httpd.conf)と同じではないため、バックアップ用のファイルを作ってから編集作業に入ります。設定ファイルをコピーし、「conf」フォルダーに「httpd.conf.org」として保存しました。それではファイルの中身をみてゆきましょう。
2. Apacheサーバーの設定ファイルの編集
2.1 設定ファイルの構成
設定ファイル中の各項目の事を「ディレクティブ」と呼びます。Apacheの設定はこのディレクティブに対して設定値を平文で記述します。 Apacheサービスの起動時に設定ファイルを読み込み、記述された内容に従いエラーログを出したり管理者へメールを配信したりします。行頭の井桁マーク「#」はコメントを意味します。設定ファイルの構成はディレクティブの用途を説明する「#」で始まるコメント行とディレクティブの行で構成されています。
●LoadModuleディレクティブとそのコメント行
# 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
#
#LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
「# Dynamic Shared Object (DSO) Support」~「# LoadModule foo_module modules/mod_foo.so」まではコメント行で「LoadModuleディレクティブ」の使い方について説明しています。
下から3行目の「#LoadModule access_compat_module modules/mod_access_compat.so」は行頭に井桁マーク「#」がついていますが、ディレクティブの説明文ではなく「#」をつけて無効になっている「LoadModule」ディレクティブです。下の2行は有効になっている「LoadModule」ディレクティブです。設定ファイルは無効になっているディレクティブに対して「#」を消して有効にしたり、また有効になっているディレクティブの値を変更したりして編集をします。
2.2 変数設定[Define SRVROOT]
まず始めに「Define SRVROOT」の設定を変更します。「ApacheHaus」の設定ファイルではサーバールートのパスを変数に入れる事で設定ファイル中の同じルートパスを何箇所も書き換える必要のないようにしています。インストールしたフォルダーに合わせてDefine SRVROOTの編集をして下さい。
●httpd.conf-[Define SRVROOT]変更前
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
・・・
Define SRVROOT "/Apache24"
ServerRoot "${SRVROOT}"
●httpd.conf-[Define SRVROOT]変更後
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
・・・
Define SRVROOT "C:¥APP¥Apache24"
ServerRoot "${SRVROOT}"
2.3 [ServerRoot]ディレクティブ
Define SRVROOTの下に「ServerRoot」ディレクティブがあります。このディレクティブの値は「"${SRVROOT}"」ですが、「ServerRoot "C:¥APP¥Apache24"」と同じ意味です。ファイルの「DocumentRoot "${SRVROOT}/htdocs"」や次の行の「
設定ファイル中のパスが絶対パスではなく相対パスで書かれている場合、「ServerRootディレクティブ」で指定したフォルダーからの相対パスとなります。
例えば先ほどの「LoadModule」ディレクティブに「modules/mod_actions.so」とあります。「${SRVROOT}」を「"C:¥APP¥Apache24"」に設定したので、モジュールの配置されているパスは「"C:¥APP¥Apache24¥modules¥mod_actions.so"」になります。
実際のフォルダーを見てみましょう。
Apacheは設定ファイル(httpd.conf)の記述に従いサーバー内の「mod_actions.so」モジュールを探してロードします。今回は少し詳しく一つ一つの設定を見てゆきましたが、その他の設定についても基本的な考え方と設定の仕方は変わりません。コメント行の英語がわずらわしいかもしれませんが、設定ファイルの基本はディレクティブ(項目)とその値という単純な構造であると思って編集してみて下さい。