編集する:

編集する:

Linuxを実行しているコンピュータにアクセスできます。 Apache2がインストールされています。 3つの仮想ホストを追加する必要があります。

その中/etc/apache2/sites-availableでマークされたファイルが約15個程度のグループがありますls -la

  1. Apache2は、仮想ホストを作成するためにこれらのファイルをアルファベット順に1つずつ読み取ると聞きました。これは正しいですか?

  2. 競合が発生した場合、Linuxはどのように優先順位を付けますか?最後に読んだファイルが勝ちますか?ファイルを最初に読むことが勝利ですか?

  3. 3つの仮想ホストを設定したい場合(既存の仮想ホストと競合せず)、そのディレクトリに追加のファイルを作成できますか?

添付:私はそれを混ぜavailableましたenabled。人々はそれを読むべきです/etc/apache2/enabled。申し訳ありません。

答え1

Apache2のドキュメントを読むこともできます。

Apache2は、仮想ホストを作成するためにこれらのファイルをアルファベット順に1つずつ読み取ると聞きました。これは正しいですか?

仮想ホスト/etc/apache2/sites-availableはから読み込まれません/etc/apache2/sites-enabled。つまり、apache2はlibcを使用し、gnu.orgディレクトリにファイルが表示される順序は非常にランダムになる傾向があります。

編集する:

私よりも正確な@nwildnerの答えを読むこともできます。

競合が発生した場合、Linuxはどのように優先順位を付けますか?最後に読んだファイルが勝ちますか?ファイルを最初に読むことが勝利ですか?

わかりませんが、競合がある場合は通常、警告メッセージが表示され、httpdサービスは(再び)ロードされません。

3つの仮想ホストを設定したい場合(既存の仮想ホストと競合せず)、そのディレクトリに追加のファイルを作成できますか?

はい、追加ファイルを追加したら、次のコマンドを実行します。

sudo a2ensite my_site1.conf my_site2.conf my_site3.conf
sudo service apache2 reload

/etc/apache2/sites-availablemy_site1.confmy_site2.confおよびを検索しますmy_site3.conf

答え2

あなたの質問に対する答えは、使用しているディストリビューションによって大きく異なります。 RPMベースのディストリビューションとは異なり、このアプローチとディレクトリsites-availablesites-enabled設定/etc/apache2ディレクトリを使用しているため、Debianベースであると仮定します。/etc/httpd

答え1.いいですね。Includeファイルにこのディレクティブを表示できますapache2.conf

host:/etc/apache2# grep sites apache2.conf
Include /etc/apache2/sites-enabled/

Apache includeディレクティブの表示文書:

...シェルスタイル(fnmatch())ワイルドカードをファイル名またはパスのディレクトリ部分に使用して、一度に複数のファイルを含めることができます。アルファベット順。 ...

答え2.何を期待すべきか分からない。私は意図的にApacheサーバーにVirtualHostを複製しましたが、文句はありませんでした。最初または最後の構成が有効になっているかどうかはわかりません。

編集1:CentOS Apacheは設定の最初のエントリを使用しているように見えます。VirtualHostここに2つの同じVirtualHostを配置すると、設定/etc/httpd/conf.d/virtual_host.conf例のみが変更されます。DocumentRoot

<VirtualHost ip.address.A:80>
  DocumentRoot /var/www/sites/wpad
  ServerName wpad.xxx.net
  ServerAlias wpad.xxx.net wpad
</VirtualHost>

<VirtualHost ip.address.A:80>
  DocumentRoot /var/www/sites/wpad2
  ServerName wpad.xxx.net
  ServerAlias wpad.xxx.net wpad
</VirtualHost>

シークレット/プライベートブラウザモードでナビゲートすると、Apacheログに最初のwpad.xxx.net/wpad.dat.Not Foundエラーが表示されます。virtualhost

答え3.Debianベースのディストリビューションでは、ファイルを内部的に作成してsites-availableシンボリックリンクする必要があります。sites-enabled

cd /etc/apache2/sites-available/
ln -s your-site ../sites-enabled/

あるいは、a2ensite@Sw0utの説明に従って使用できます。

関連情報