質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

3回答

4925閲覧

Apacheってhttpd.confを直で修正するものなんですか?

redhat98

総合スコア236

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

1グッド

0クリップ

投稿2016/09/21 15:53

Apacheで外部に設定ファイルを作って、httpd.confからincludeするという方法があることを知りました。
これを使えば、一部の設定を除き直接httpd.confを修正する必要がないとのことでした。

しかし、色々なサイトを見ていると、ほとんどの場合でhttpd.confを直で修正しているように思います。
外部に設定ファイルを作ってinclude or httpd.confを直接修正するのはどちらが多数はなのでしょうか?

search_search👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

RHEL 6.x 以前で yum でパッケージインストールした場合、内容によっては httpd.conf をいじらざるを得ない構成になっていましたが、RHEL 7.x 以降は基本的に httpd.conf は触れずに /etc/httpd/conf.d/ 配下にファイルを配置して設定する方向にシフトしていると思います。

Red Hat Enterprise Linux 7 システム管理者のガイド 第11章 WEB サーバー

以下は CentOS 7.x で httpd を yum でインストールした場合のデフォルト構成です。

/etc/httpd/ ├── conf │   ├── httpd.conf │   └── magic ├── conf.d │   ├── README │   ├── autoindex.conf │   ├── userdir.conf │   └── welcome.conf ├── conf.modules.d │   ├── 00-base.conf │   ├── 00-dav.conf │   ├── 00-lua.conf │   ├── 00-mpm.conf │   ├── 00-proxy.conf │   ├── 00-systemd.conf │   └── 01-cgi.conf ├── logs -> ../../var/log/httpd ├── modules -> ../../usr/lib64/httpd/modules └── run -> /run/httpd

外部に設定ファイルを作ってinclude or httpd.confを直接修正するのはどちらが多数はなのでしょうか?

単純に多数派がどちらかと言えば直接修正が多いと想像されます。ご自身が言及されている「色々なサイト」が「直で修正している」からです。

しかし、 Red Hat 社が買収した Ansible などの構成管理ツールの台頭を筆頭に自動化がトレンドの文脈で考えると、デフォルト設定には手を入れずに追加設定ファイルでコントロールする方が冪等性を確保しやすいように思います。

PHP の設定ファイルを見てもモジュールごとに設定ファイルが分離されており、モジュールまたは用途ごとに設定ファイルを分離すること自体は主流と言っても良いかと思います。

主設定ファイルが修正か分離かのトレンドについてはなんとも言えませんが、個人的には「冪等性を確保しやすい」ことと「デフォルト設定からの変更点が把握しやすい」ということから、分離が妥当と考えます。

投稿2016/09/22 09:23

bezeklik

総合スコア580

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

redhat98

2016/09/22 12:03

回答有り難うございました。
guest

0

分離します。というか、パッケージのApacheをインストールするとデフォルトですでに分離されてます。
以下はUbuntuのapache2パッケージでインストールした場合の構成です(apache2.confより)。

# /etc/apache2/ # |-- apache2.conf # | `-- ports.conf # |-- mods-enabled # | |-- *.load # | `-- *.conf # |-- conf-enabled # | `-- *.conf # `-- sites-enabled # `-- *.conf

この場合ですと、ポートの設定はports.confに、モジュールの設定はmods-enabled/以下の設定ファイルに、文字コードやCGIなどの設定はconf-enabled/以下に、Webサイトの設定はsites-enabled/以下に、と細かく分かれています。
それぞれの設定ファイルはメイン設定ファイルであるapache2.confからIncludeIncludeOptionalディレクティブで読み込まれています。
CentOSのApache2.2でもhttpd.confにはポート番号やタイムアウトなど基本となる設定のみで各サイトの設定やSSLの設定などはconf.d/以下に別ファイルで分かれています。

一つのファイルに全部書くこともできますが、非常に長くなりごちゃごちゃしてしまうので分離した方がいいでしょう。逆に分離しすぎてよくわからない、とかもあるかもしれませんのでその辺は適切に…。

私はローカルの作業環境ではプロジェクトごとに複数のサイトを動作させるので、サイトごとにconfファイルを作成しています。

投稿2016/09/21 18:08

guest1213

総合スコア306

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

redhat98

2016/09/22 12:03

> 私はローカルの作業環境ではプロジェクトごとに複数のサイトを動作させるので、サイトごとにconfファイルを作成しています。 なるほど、勉強になりました
guest

0

httpd.confは初期設定で必ず修正するファイルです。
初期設定として「一部の設定を除きhttpd.confを触る必要が無い」ようにhttpd.confを設定することもできるかと思いますが、経験上わざわざそのように極端に分離するケースを見たことがありません。
特定のモジュールの設定等を纏めておく程度のことは普通にあるかと思います。
ただ、業界が異なれば状況も異なるため色んな人の意見を聞くのは良いかも知れません。

投稿2016/09/21 16:34

nakit

総合スコア410

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問