Linuxを実行しているコンピュータにアクセスできます。 Apache2がインストールされています。 3つの仮想ホストを追加する必要があります。
その中/etc/apache2/sites-available
でマークされたファイルが約15個程度のグループがありますls -la
。
Apache2は、仮想ホストを作成するためにこれらのファイルをアルファベット順に1つずつ読み取ると聞きました。これは正しいですか?
競合が発生した場合、Linuxはどのように優先順位を付けますか?最後に読んだファイルが勝ちますか?ファイルを最初に読むことが勝利ですか?
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-available
my_site1.conf
、my_site2.conf
およびを検索しますmy_site3.conf
。
答え2
あなたの質問に対する答えは、使用しているディストリビューションによって大きく異なります。 RPMベースのディストリビューションとは異なり、このアプローチとディレクトリsites-available
とsites-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の説明に従って使用できます。