Apache仮想ホスト設定の競合を解消する方法を徹底解説

Apache仮想ホストを使用すると、1つのサーバーで複数のウェブサイトをホストできます。しかし、設定ミスや競合が原因で、意図しないサイトが表示されたり、特定のサイトがアクセス不能になる問題が発生することがあります。

特に、複数の仮想ホスト設定が同じポートをリッスンしている場合や、デフォルトの仮想ホスト設定が正しく機能していない場合に、この問題が顕著になります。

本記事では、仮想ホスト設定の基本から競合が発生する原因、具体的な解消方法、さらには実際の設定例までを詳細に解説します。Apacheを活用して複数のサイトを安定的に運用するための知識を深めていきましょう。

目次

仮想ホストの仕組みと基本構成


Apache仮想ホスト(VirtualHost)は、1つの物理サーバーで複数のドメインやサイトを運用するための仕組みです。これにより、サーバーのリソースを効率的に活用しながら、異なるコンテンツを提供できます。

仮想ホストには「名前ベース仮想ホスト」と「IPベース仮想ホスト」の2種類があります。

名前ベース仮想ホスト


1つのIPアドレスで複数のドメインを扱う方法です。ブラウザからのリクエストはホスト名(ドメイン)によって識別され、対応する仮想ホストの設定が適用されます。
例:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>


この例では、example.comtest.comのリクエストがそれぞれ異なるディレクトリにルーティングされます。

IPベース仮想ホスト


異なるIPアドレスを仮想ホストごとに割り当てて運用する方法です。IPアドレスごとに異なるウェブサイトを提供します。
例:

<VirtualHost 192.168.1.10:80>
    ServerName site1.com
    DocumentRoot /var/www/site1
</VirtualHost>

<VirtualHost 192.168.1.11:80>
    ServerName site2.com
    DocumentRoot /var/www/site2
</VirtualHost>


IPアドレスが異なるため、サイトの分離が明確で競合が発生しにくいのが特徴です。

基本構成要素

  • ServerName:ホスト名を指定するディレクティブ。リクエストされたドメインと一致する場合に、その仮想ホストが処理されます。
  • DocumentRoot:ウェブサイトのファイルが格納されているディレクトリのパスです。
  • Directory:特定のディレクトリに対して細かいアクセス制御を設定するブロックです。

仮想ホストの基本的な仕組みを理解することで、競合や設定ミスを防ぎやすくなります。次に、仮想ホストの競合がどのように発生するのかを見ていきましょう。

仮想ホスト競合の原因とは


Apacheで仮想ホストが競合する主な原因は、設定ミスや構成の不整合にあります。これにより、特定のドメインが意図しないサイトへ転送されたり、デフォルトサイトが優先的に表示されるケースが発生します。

競合が発生する主な原因

1. 複数の仮想ホストが同じポートでListenしている


仮想ホストが同一のポート(例:80)でリッスンしている場合、Apacheは最初に記述された仮想ホスト設定を優先します。
例:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>


この設定ではexample.comが優先され、test.comがリクエストされてもexample.comが表示される可能性があります。

2. デフォルト仮想ホストが意図しない形で設定されている


デフォルト仮想ホストが正しく指定されていないと、すべてのリクエストがデフォルト設定にルーティングされてしまいます。

<VirtualHost _default_:80>
    ServerName default.com
    DocumentRoot /var/www/default
</VirtualHost>


未設定のドメインがすべてdefault.comに割り当てられることがあります。

3. ServerNameとServerAliasの不一致


ServerNameが一致しない場合、Apacheは該当する仮想ホストを見つけられず、デフォルトホストが表示されます。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example
</VirtualHost>


ここでwww.example.comは表示されますが、example.netのリクエストは処理されません。

4. NameVirtualHostの設定ミス


Apache 2.2以前ではNameVirtualHostの記述が必要ですが、設定が不足していると仮想ホストが競合します。

NameVirtualHost *:80


この記述がない場合、名前ベースの仮想ホストが正しく動作しません。

競合が与える影響

  • 意図しないウェブサイトの表示:ユーザーがアクセスしたいサイトが表示されない。
  • セキュリティリスク:本来公開されるべきでないサイトが誤って外部に表示される可能性があります。
  • ユーザー体験の低下:複数のドメインを運用している場合に、不整合が生じると信頼性が損なわれます。

次に、デフォルトホストの具体的な挙動と設定ミスを掘り下げます。

デフォルトホストの挙動と設定ミスの例


Apacheでは、仮想ホストの設定で特定のドメインが一致しない場合、最初に定義された仮想ホストが「デフォルトホスト」として機能します。このデフォルトホストの設定が意図しない形で適用されると、誤ったサイトが表示される原因となります。

デフォルトホストの挙動


Apacheはリクエストされたホスト名が一致する仮想ホストが存在しない場合、最初に読み込まれた仮想ホストを使用します。これが「デフォルトホスト」となります。

<VirtualHost *:80>
    ServerName default-site.com
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>


この場合、example.com以外のすべてのリクエストはdefault-site.comに転送されます。

設定ミスの具体例

1. 不明なホストへのリクエストがすべてデフォルトサイトに転送される


意図しないドメインが表示されるケースの典型例です。

<VirtualHost *:80>
    DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>


ここでServerNameが指定されていない仮想ホストが最初に記述されているため、example.com以外のドメインはすべて/var/www/htmlが表示されます。

2. 意図したサイトが表示されない


複数の仮想ホストが同一ポートで競合している場合、意図しない仮想ホストが優先されます。

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>


この設定ではtest.comが最初に記述されているため、example.comへのリクエストがtest.comとして処理される可能性があります。

意図したデフォルトホストの設定方法


デフォルトホストを意図的に指定することで、競合を防ぐことができます。

<VirtualHost *:80>
    ServerName _default_
    DocumentRoot /var/www/default
</VirtualHost>


ServerName _default_と記述することで、明示的にデフォルトホストを指定できます。これにより、不明なホストへのリクエストは/var/www/defaultで処理されます。

設定順序を管理して競合を防ぐ

  • 000-default.confなどのファイル名でデフォルトホストの設定を最初に読み込ませる。
  • 明確にServerNameを記述し、意図しない仮想ホストがデフォルトにならないようにする。

これにより、仮想ホストの競合を防ぎ、安定したサイト運用が可能になります。次は、リッスンポートとListenディレクティブの重要性について解説します。

Listenディレクティブとポート設定の注意点


Apacheでは、Listenディレクティブを使用してサーバーが受け付けるポートを指定します。仮想ホストが競合する原因の一つに、Listen設定の誤りや不足があります。正しく設定しないと、仮想ホストが意図したポートでリクエストを受け付けず、サイトが表示されないことがあります。

Listenディレクティブの役割


Listenディレクティブは、ApacheがどのIPアドレスとポートで接続を待ち受けるかを定義します。これが適切に設定されていないと、仮想ホストがリクエストを正しく処理できません。

例1:基本的なListen設定

Listen 80
Listen 443


ポート80(HTTP)と443(HTTPS)で待ち受けます。これは標準的なウェブサーバーの構成です。

例2:特定のIPアドレスでListen

Listen 192.168.1.10:80
Listen 192.168.1.10:443


特定のIPアドレス192.168.1.10でのみリクエストを受け付けます。他のIPでは仮想ホストが動作しません。

Listen設定の誤りによる競合例

<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot /var/www/site1
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.com
    DocumentRoot /var/www/site2
</VirtualHost>


上記のように仮想ホストが複数ある場合でも、Listen 80が設定されていないと、Apacheはポート80でリクエストを受け付けません。

解決例:Listenの追加

Listen 80
<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot /var/www/site1
</VirtualHost>

ポート競合の具体例


同一ポートで複数のプロセスがListenしている場合、Apacheの起動時にエラーが発生します。

Listen 80
Listen 80


このような重複はエラーの原因となります。

エラー例

(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

解決策
重複するListenディレクティブを削除し、Listen 80は一度だけ記述します。

複数ポートで仮想ホストを運用する方法


複数のポートで異なるサイトを運用する場合は、仮想ホストごとにポートを指定します。

Listen 8080
Listen 8443

<VirtualHost *:8080>
    ServerName dev.example.com
    DocumentRoot /var/www/dev
</VirtualHost>

<VirtualHost *:8443>
    ServerName secure.example.com
    DocumentRoot /var/www/secure
</VirtualHost>


ポート8080で開発用サイト、8443でセキュアなサイトを運用できます。

Listen設定のポイント

  • 不要なListenを記述しない – 使用しないポートはListenから外します。
  • IPアドレスとポートを明確に指定する – 必要に応じて特定のIPでのみリッスンする設定を行います。
  • 重複を避ける – 同じポートで複数のListenディレクティブを記述しないように注意します。

これにより、仮想ホストのポート競合を防ぎ、安定した環境を構築できます。次に、NameVirtualHostの役割と設定ポイントについて解説します。

NameVirtualHostの役割と設定ポイント


NameVirtualHostは、Apache 2.2以前のバージョンで名前ベースの仮想ホストを有効にするディレクティブです。これを正しく設定しないと、仮想ホストが意図通りに動作せず、すべてのリクエストがデフォルトの仮想ホストに転送されることがあります。

Apache 2.4以降ではNameVirtualHostは不要になりましたが、古いバージョンでは依然として重要な役割を果たします。

NameVirtualHostの基本


NameVirtualHostを設定することで、複数の仮想ホストが同じIPアドレスとポートを共有できるようになります。

NameVirtualHost *:80


この設定があることで、次のように複数の仮想ホストを1つのIPアドレスで運用できます。

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>


リクエストのHostヘッダーに基づいて、適切な仮想ホストが処理されます。

設定ミスによる問題例


NameVirtualHostが未設定の場合、すべてのリクエストがデフォルトホストにルーティングされてしまいます。

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>


example.comtest.comの仮想ホストがあっても、test.comのリクエストはexample.comで処理される可能性があります。

解決方法:NameVirtualHostの追加

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test
</VirtualHost>

複数ポートでのNameVirtualHost


複数のポートで仮想ホストを運用する場合も、ポートごとにNameVirtualHostを指定する必要があります。

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>

<VirtualHost *:443>
    ServerName secure.example.com
    DocumentRoot /var/www/secure
</VirtualHost>


ポート80443でそれぞれ仮想ホストが処理されるようになります。

Apache 2.4以降での注意点


Apache 2.4以降では、NameVirtualHostの記述は不要です。仮想ホストを記述するだけで、自動的に名前ベースの仮想ホストが有効になります。

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>


ただし、ListenディレクティブやServerNameの記述は引き続き必要です。

設定時のポイント

  • NameVirtualHostはポートごとに指定 – 必要なすべてのポートでNameVirtualHostを記述します。
  • 重複を避ける – 複数のNameVirtualHostが重複していないか確認します。
  • Apacheのバージョン確認 – Apache 2.4以降ではNameVirtualHostを記述しないようにします。

これにより、仮想ホストの競合を防ぎ、正しく複数サイトを運用できます。次は、設定ファイルの順序と優先度の管理方法について解説します。

設定ファイルの順序と優先度の管理方法


Apacheでは、仮想ホストの設定ファイルが読み込まれる順序が競合の要因となることがあります。仮想ホストが同じポートで複数設定されている場合、Apacheは最初に読み込まれた設定を優先して適用します。そのため、設定ファイルの順序を適切に管理することが重要です。

設定ファイルの読み込み順序


Apacheは通常、sites-availableディレクトリ内の設定ファイルをsites-enabledディレクトリにシンボリックリンクで有効化します。このディレクトリ内のファイルは、アルファベット順に読み込まれます。

例:sites-enabledディレクトリの構成

000-default.conf
001-example.com.conf
002-test.com.conf


この場合、000-default.confが最初に読み込まれ、デフォルトホストとして機能します。

優先度を制御する方法

1. ファイル名に番号を付けて順序を明確化


ファイル名の先頭に000-001-のように番号を付けることで、読み込み順序を制御できます。

sudo mv example.com.conf 001-example.com.conf
sudo mv test.com.conf 002-test.com.conf


これにより、example.comtest.comよりも先に適用されます。

2. Includeディレクティブを使用して順序を指定


apache2.confhttpd.confIncludeディレクティブを追加し、仮想ホストの設定ファイルを順序通りに読み込ませます。

Include /etc/apache2/sites-enabled/000-default.conf
Include /etc/apache2/sites-enabled/001-example.com.conf
Include /etc/apache2/sites-enabled/002-test.com.conf

3. デフォルトホストを明示的に指定


特定の仮想ホストをデフォルトとして設定する場合は、_default_を使用します。

<VirtualHost _default_:80>
    ServerName default-site.com
    DocumentRoot /var/www/default
</VirtualHost>


これにより、他の仮想ホストが一致しない場合、明示的にdefault-site.comが適用されます。

設定順序が影響するケース

1. 仮想ホストの競合


同じポートで複数の仮想ホストが存在し、ServerNameが一致しない場合、最初に記述された仮想ホストが処理されます。

<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot /var/www/site1
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.com
    DocumentRoot /var/www/site2
</VirtualHost>


この例では、site1.comが常に優先されます。

2. SSL仮想ホストの優先度


HTTPSの仮想ホストが複数ある場合も、ファイルの読み込み順が影響します。SSL仮想ホストが後に記述されていると、HTTPリクエストが意図しないサイトにリダイレクトされる可能性があります。

<VirtualHost *:443>
    ServerName secure.example.com
    DocumentRoot /var/www/secure
</VirtualHost>


これが先に記述されていないと、別の仮想ホストがSSLリクエストを処理する可能性があります。

優先度を適切に管理するポイント

  • 番号付きファイル名を使用する000-などを使用して、デフォルトホストを先頭に配置します。
  • Includeディレクティブで順序を指定する – 読み込み順を明示的に管理します。
  • デフォルトホストを明示的に設定する_default_を使用してデフォルトホストを指定します。

次に、実際のトラブルシューティング手順を詳しく解説します。

実践的なトラブルシューティング手順


仮想ホストの競合が発生した場合、迅速に問題を特定し、解消することが重要です。Apacheでは設定のわずかなミスが大きな影響を与えるため、段階的に原因を特定して修正していきます。

1. Apacheの設定ファイルを検証する


Apacheには、設定ファイルの構文エラーをチェックするコマンドが用意されています。まずはこれを実行して、基本的なミスがないか確認します。

sudo apachectl configtest


出力例

Syntax OK


エラーがある場合はエラーメッセージが表示されます。たとえば、以下のようなエラーが出力されることがあります。

AH00526: Syntax error on line 15 of /etc/apache2/sites-enabled/example.com.conf:
Invalid command 'DocumentRoo', perhaps misspelled or defined by a module not included in the server configuration


この場合は、スペルミスが原因である可能性があります。

2. 有効な仮想ホストの一覧を確認する


次に、Apacheがどの仮想ホストを認識しているかを確認します。

sudo apachectl -S


出力例

VirtualHost configuration:
*:80                 is a NameVirtualHost
     default server example.com (/etc/apache2/sites-enabled/000-example.conf:1)
     port 80 namevhost example.com (/etc/apache2/sites-enabled/000-example.conf:1)
     port 80 namevhost test.com (/etc/apache2/sites-enabled/001-test.conf:1)
*:443                is a NameVirtualHost
     port 443 namevhost secure.example.com (/etc/apache2/sites-enabled/002-secure.conf:1)


これにより、どの仮想ホストがどのポートで動作しているかを確認できます。デフォルトの仮想ホストや競合している仮想ホストが特定しやすくなります。

3. Listenディレクティブを確認する


Listenディレクティブが正しく設定されているかを確認します。

grep -r "Listen" /etc/apache2/


出力例

Listen 80
Listen 443


複数のListen 80が記述されている場合、競合が発生することがあります。不要なListenがあれば削除します。

4. 優先順位を変更する


仮想ホストの優先順位を変更することで、意図したホストが適切に表示されるようにします。

sudo mv /etc/apache2/sites-enabled/example.com.conf /etc/apache2/sites-enabled/000-example.com.conf
sudo systemctl restart apache2


ファイル名の先頭に000-を追加することで、優先的に読み込まれるようになります。

5. デフォルト仮想ホストを設定する


明示的にデフォルトホストを指定することで、競合を防ぎます。

<VirtualHost _default_:80>
    ServerName default.example.com
    DocumentRoot /var/www/default
</VirtualHost>

6. ホストファイルを確認する


ローカル環境で仮想ホストが正しく動作しない場合は、/etc/hostsファイルを確認します。

cat /etc/hosts


出力例

127.0.0.1   example.com
127.0.0.1   test.com


必要なドメインが正しく記述されているか確認し、不足している場合は追記します。

7. Apacheのログを確認する


問題の特定にはログファイルが役立ちます。error.logaccess.logを確認して、仮想ホストに関連するエラーが出力されていないか確認します。

sudo tail -f /var/log/apache2/error.log

8. HTTPSの仮想ホストを確認する


SSL/TLSを使用する場合、ポート443の仮想ホストが正しく設定されているかを確認します。証明書のミスがあるとhttpsでサイトが表示されません。

<VirtualHost *:443>
    ServerName secure.example.com
    DocumentRoot /var/www/secure
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>

9. 設定変更後の再起動


設定ファイルを修正したら、Apacheを再起動して変更を反映させます。

sudo systemctl restart apache2

ポイント

  • 構文エラーがないか確認するconfigtestでエラーチェック
  • 優先順位を管理する – ファイル名を000-などに変更
  • ログを活用する – エラーが出ていないか確認

次は、具体的な仮想ホスト設定の例を紹介します。

具体例:複数ドメインの仮想ホスト設定サンプル


複数のドメインを1つのApacheサーバーで運用する際の具体的な仮想ホスト設定例を紹介します。これにより、異なるドメインがそれぞれのコンテンツを適切に配信できるようになります。

前提条件

  • example.comtest.com の2つのドメインを1台のサーバーで運用
  • HTTPとHTTPSの両方をサポート
  • ドキュメントルートは/var/www/example/var/www/testに設定

設定例

1. HTTP仮想ホスト設定


ポート80で各ドメインのリクエストを受け付けます。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example

    <Directory /var/www/example>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example-error.log
    CustomLog ${APACHE_LOG_DIR}/example-access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test

    <Directory /var/www/test>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/test-error.log
    CustomLog ${APACHE_LOG_DIR}/test-access.log combined
</VirtualHost>


この設定により、example.comtest.comのHTTPリクエストがそれぞれのディレクトリにルーティングされます。

2. HTTPS仮想ホスト設定


SSL/TLSを使用してポート443でセキュアな接続を提供します。

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example

    <Directory /var/www/example>
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key

    ErrorLog ${APACHE_LOG_DIR}/example-ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/example-ssl-access.log combined
</VirtualHost>

<VirtualHost *:443>
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test

    <Directory /var/www/test>
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/test.crt
    SSLCertificateKeyFile /etc/ssl/private/test.key

    ErrorLog ${APACHE_LOG_DIR}/test-ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/test-ssl-access.log combined
</VirtualHost>


この設定により、各ドメインがHTTPSでセキュアに接続されます。証明書ファイルは適切に配置し、ドメインごとに異なるものを使用します。

リダイレクト設定(HTTPからHTTPSへのリダイレクト)


HTTPでアクセスされた場合に自動的にHTTPSへリダイレクトする設定を追加します。

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName test.com
    Redirect permanent / https://test.com/
</VirtualHost>


これにより、HTTPアクセスはHTTPSへ転送され、セキュリティが向上します。

ホストファイルの確認と設定


ローカルでテストする場合は、/etc/hostsに以下を追加します。

127.0.0.1 example.com
127.0.0.1 test.com

Apacheの再起動と動作確認


設定ファイルを有効にし、Apacheを再起動します。

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl restart apache2

確認方法


ブラウザでhttp://example.comhttps://test.comにアクセスし、正しいサイトが表示されることを確認します。

curl -I http://example.com
curl -I https://test.com

設定時の注意点

  • 証明書の有効期限を確認し、期限切れを防ぎます。
  • ファイル名の順序000-などで制御し、デフォルト仮想ホストを明確にします。
  • エラーログを定期的に確認し、設定の不備や問題を早期に発見します。

これで複数ドメインを1台のApacheサーバーで効率的に運用できます。次は、本記事のまとめに進みます。

まとめ


本記事では、Apache仮想ホストの競合を解消する方法について詳しく解説しました。仮想ホストの基本構成から、競合が発生する原因、デフォルトホストの設定ミス、Listenディレクティブの重要性、NameVirtualHostの役割、設定ファイルの順序管理まで幅広く取り上げました。

また、実践的なトラブルシューティング方法や、複数ドメインを運用する際の具体的な仮想ホスト設定例を紹介し、HTTPからHTTPSへのリダイレクト設定まで網羅しました。

仮想ホストの競合を防ぐためのポイント

  • 設定ファイルの順序を明確にし、優先順位を管理する
  • Listenディレクティブを正しく設定し、ポートの競合を防ぐ
  • デフォルト仮想ホストを明示的に指定して意図しないサイトが表示されるのを防ぐ
  • トラブルシューティングではapachectl configtestapachectl -Sを活用し、設定ミスを早期に特定する

これらの知識を活用することで、Apacheを使用した複数サイトの運用が安定し、意図しない仮想ホストの競合を防げます。

コメント

コメントする

目次