Apacheの設定ファイル(http.conf)を編集する

    • このページをはてなブックマークに追加

    公開日:2016年11月18日 最終更新日:2019年09月27日

    Apacheをインストール後に「http.conf」という設定ファイルの編集を行います。必要最低限編集した方がよい項目もありますが、サーバーの環境や用途により編集する項目などは様々です。設定ファイルも「http.conf」だけでなく文字コードに関する設定ファイルやSSLに関する設定ファイルなど設定項目は多岐にわたります。本コラムでは、設定ファイルの基本的と編集方法についていくつかの項目編集と合わせて解説します。

    目次

    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」

    apache2-1

    「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"」や次の行の「」など設定ファイルの何箇所かでこの変数が使われています。フォルダーの名前を変更したり場所を移動した場合には「Define SRVROOT」の値一箇所を編集すればOKです。メンテナンスしやすい設計になっています。

    設定ファイル中のパスが絶対パスではなく相対パスで書かれている場合、「ServerRootディレクティブ」で指定したフォルダーからの相対パスとなります。 例えば先ほどの「LoadModule」ディレクティブに「modules/mod_actions.so」とあります。「${SRVROOT}」を「"C:¥APP¥Apache24"」に設定したので、モジュールの配置されているパスは「"C:¥APP¥Apache24¥modules¥mod_actions.so"」になります。
    実際のフォルダーを見てみましょう。

    apache2-2

    Apacheは設定ファイル(httpd.conf)の記述に従いサーバー内の「mod_actions.so」モジュールを探してロードします。今回は少し詳しく一つ一つの設定を見てゆきましたが、その他の設定についても基本的な考え方と設定の仕方は変わりません。コメント行の英語がわずらわしいかもしれませんが、設定ファイルの基本はディレクティブ(項目)とその値という単純な構造であると思って編集してみて下さい。

    ▲ページトップへ戻る

    月額単価70万円〜80万円
    勤務地 東京都 港区
    • このページをはてなブックマークに追加

    おすすめ記事

  • ピックアップ

    正社員

    【AWS】インフラエンジニア|各種ネットワークの設計・構築

    年収 :300万円〜

    ネットワーク設計・構築から運用保守、システムインフラ基盤設計及び構築 システム導入・提案から運用...

    ヴィップシステム株式会社

    正社員

    【Linux】クラウドエンジニア|サーバシステムの構築

    年収 :300万円〜

    クラウドシステムの設計・構築

    コラボテクノ株式会社

    正社員

    【LAMP】インフラエンジニア|サーバ・ネットワークの構築

    年収 :400万円〜

    システム化要件に沿って、サーバ・ネットワークの設計、構築、テストを実施していただきます。 構築さ...

    株式会社ダブルスタンダード

    フリーランス

    【Apache/Nginx/MySQL/Linux】インフラエンジニア★BtoC向けWEBシステムのサーバリプレイス

    月額単価 :70万円〜80万円

    同社はWebシステムやスマフォアプリ開発を得意とする受託開発企業です。 今回は既存であるBtoC向けWeb...