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

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

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

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

Q&A

解決済

1回答

11646閲覧

apacheでincludeする際の読み込み順

退会済みユーザー

退会済みユーザー

総合スコア0

Apache

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

0グッド

1クリップ

投稿2018/11/16 06:20

CentOS 6.9 上の apache2.2.15 で複数のネームベースバーチャルホストを構築しています。

バーチャルホストの設定ファイルを、ホスト名ごとに /etc/httpd/conf.d/(hostname).conf というファイル名で置いています。httpd.conf

# # Load config files from the config directory "/etc/httpd/conf.d". # Include conf.d/*.conf

とありますため、conf.d/以下の設定ファイルをアルファベット順で読み込んでくれるようです。Include ディレクティブ

このアルファベット順というのはアスキーコード順と考えていいのでしょうか。

といいますのは、デフォルトのバーチャルホスト設定を _default.conf として用意しておりまして、これを必ず最初に読み込んで欲しいのです。(アスキーコードなら _ はどの英文字よりも前なので)

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

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

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

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

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

otn

2018/11/16 06:30

「どの英文字よりも前」→「どの英小文字よりも前」ですね。
退会済みユーザー

退会済みユーザー

2018/11/16 06:38

そうです
guest

回答1

0

ベストアンサー

そうですね、 ASCII コード順と考えて良いと思います。

  1. Include ディレクティブの処理は、 core.c のこの部分

にある通り、 include_config 関数によって行われています。
2. 同じファイルのこの部分 にある通り、 include_config 関数の実処理は ap_process_resource_config 関数に移譲されています。
3. ap_process_resource_config 関数は config.c のここ で定義されていますが、読み進めていくと、 glob 文字を含むパターンの場合はディレクトリの中の一致する ファイル名の一覧を取得後、 fname_alphasort 比較関数を用いて qsort でクイックソートをした順で読み込んで います。
4. fname_alphasort 関数の実態は 同じファイルのここ にあり、単純に strcmp 関数によるファイル名の比較を行っています。
5. strcmp 関数は 2 つの文字列をバイト単位で比較し、最初に一致しなかったバイトの unsigned char 単位での差異を返します から、つまりこれは ASCII コード文字が含まれていればそのコード順です。

2.4 だと httpd -t -D DUMP_CONFIG | grep "In file" 等として実際に読み込まれた順序を確認できるはずなのですが、 2.2 だと上記の通り、実装を確認する以外に方法が無いような気がします。

投稿2018/11/25 05:51

argparse

総合スコア1017

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

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

退会済みユーザー

退会済みユーザー

2018/11/25 08:33

ありがとうございます。確認が取れてよかったです。大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問