Apacheはconfファイルをどの順序でロードし、どのファイルをロードしますか?


10

私は、何年にもわたって多くの人が追加したwebframeworkがインストールされたCentOS 6.5サーバーを探しています。/ confには、httpd.confを含む5つのアクティブな.confファイルのようなものがあります。

httpd.confにインクルード読み取り

Include conf.d/*.conf

そして、それはそのディレクトリ内のすべてのファイルを取得しますが、私が知っている特定の順序が適用されていないため、/ conf(.dなし)ディレクトリはどうですか?

読み込み順序を示す設定はありますか、それとも単にzから取得した設定ですか?

私はサーバー管理者ではありません。私は開発者です。問題は/ Temp dirにファイルをアップロードするためのパスにあります。指定したパスが、自分が関係しているファイルに対して正しいことを確認しました。

したがって、最初の質問は次のとおりです。

Apache は/ confからすべてをロードしますか、またはどこかに指定されたリストがありますか?

2番目の質問は次のようになります。

Apacheはファイルをアルファベット順にロードしますか?

最後に:

.confで終わらないファイルは含まれますか?たとえば、myconfig.conf.oldという名前を付けた場合、Apacheはそれをスキップしますか?

回答:


14

順序はアルファベット順です。インクルードパスで指定されたもののみをロードします。Include conf.d/*.confApache の場合、名前がで終わるすべてのファイルをロードします.conf

これは、Apache Documentationからの抜粋です。

シェルスタイル(fnmatch())のワイルドカード文字を使用して、アルファベット順に複数のファイルを一度に含めることができます。さらに、インクルードがファイルではなくディレクトリを指している場合、Apacheはそのディレクトリとサブディレクトリ内のすべてのファイルを読み取ります。ただし、httpdの失敗の原因となる一時ファイルを誤ってディレクトリに残す可能性があるため、ディレクトリ全体を含めることはお勧めしません。


よろしくお願いいたします。質問1と2に確実に回答します。Apacheのドキュメントを調べましたが、答えが見つかりませんでした。
chrtp 2014年

おおまかに言って(構成項目の順序が以前の項目をオーバーライドする)正しい。コマンドが同じ構成セクションにある場合は確かです。しかし、たとえばAllowOverride.htaccessファイル内の構成で構成項目を上書きすることが可能です(を使用)。
容疑者

コメントを編集する前にコメントを編集しました。この場合、.htaccessはありませんが、他のすべてを上書きする「t」で始まるファイルがあります。ファイルの名前を変更するか、ファイルを移動します。
chrtp 2014年

1
@chrtp、およびで始まるファイルがt他のすべてをオーバーライドするのはなぜですか?
Andrew Savinykh 2017

1

Apacheは、「Include」ディレクティブに基づいて追加の設定を読み込みます。おそらく次のようになります。

Include conf.d/*.conf

したがって、明らかに、「*。conf」のように見える「conf.d」内のすべてが含まれています。

さらにおかしくするために、「include」を使用して任意の数のディレクトリを追加できます。すべてのディレクトリには、ほぼ同じ設定ファイルを含めることができ、起動時にすべてがお互いにオーバーライドできます...そして、それら自体がオーバーライドされますさまざまなホストされたディレクトリの.htaccessファイル。

私の知る限りでは、httpd.confが最初で、次にディレクトリが含まれる順にディレクトリが続き、次にそこからアルファベット順になります。

良い時間。apachectl -tまたはapachectl configtestを使用して、構成によって問題が発生するかどうかを確認できます。


1
ありがとうございます。もちろん、最後にロードされ、/ Tempへのパスを指定する他のファイルをオーバーライドするtemplate.confというファイルを誰かが残したようです。そこで他に何が壊れているのかしか推測できません!
chrtp 2014年

1
@chrtp陽気に追加するには、-C(構成ファイルを読み取るに追加する場合)および-c(構成ファイルのに読み取る場合)を使用して実行時にディレクティブを指定できるため、コマンドラインからまったく異なる構成を取得できます。始めるとき。
Satanicpuppy 2014年

1

順序を変更したいのですが、sites-availableディレクトリの最初のconfファイルを開き、最初のVirtualHost *:80の前に仮想ホストコードを追加します。

私の場合、hub.xxx.com.confをbayxxx.com.confの前に置きます。それで、hub.xxx.com.confを開き、仮想ホストをファイルの先頭に配置します

例えば:

<VirtualHost *:80>
    DocumentRoot /www/hub.xxx.com/www/root
    ServerName hub.xxx.com
    ServerAlias *.hub.xxx.com
    <Directory "/www/hub.xxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/bayxxx.com/www/root
    ServerName bayxxx.com
    ServerAlias www.bayxxx.com
    <Directory "/www/bayxxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.