Apache Virtual Hostsを使用すると、1台のマシンで複数のWebサイトを実行できます。仮想ホストを使用すると、サイトのドキュメントルート(Webサイトファイルを含むディレクトリ)を指定したり、サイトごとに個別のセキュリティポリシーを作成したり、さまざまなSSL証明書を使用したりできます。
この記事では、Debian10サーバーでApache仮想ホストを設定する方法について説明します。
前提条件#
このチュートリアルを続行する前に、次の要件を満たしていることを確認してください。
- パブリックサーバーのIPを指すドメイン名。
 - CentOSsystemにインストールされているApache。
 - rootまたはsudo権限を持つユーザーとしてログインしています。
 
ディレクトリ構造を作成する#
ドキュメントルートは、ドメイン名のWebサイトファイルが保存され、要求に応じて提供されるディレクトリです。ドキュメントルートは、任意の場所に設定できます。
次のディレクトリ構造を使用します:
/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html
 
 サーバーでホストされている各ドメインのドキュメントルートは、/var/www/<domain_name>/public_htmlに設定されます。 。
 まず、最初のドメインexample.comのドキュメントルートディレクトリを作成します。 :
sudo mkdir -p /var/www/example.com/public_html 
 index.htmlも作成します ブラウザでドメインにアクセスしたときに表示されるドメインドキュメントのルートディレクトリ内のファイル。
お気に入りのテキストエディタを開き、新しいファイルを作成して、次のファイルを貼り付けます。
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>
 
 上記のコマンドはsudoユーザーとして実行されるため、新しく作成されたファイルとディレクトリはrootが所有します。権限の問題を回避するには、ドメインドキュメントのルートディレクトリとディレクトリ内のすべてのファイルの所有権をapacheユーザー(www-data)に変更します。 ):
sudo chown -R www-data: /var/www/example.com 仮想ホストを作成する#
 Debianシステムでは、Apache仮想ホストの設定ファイルは/etc/apache2/sites-availableにあります。 ディレクトリであり、/etc/apache2/sites-enabledへのシンボリックリンクを作成することで有効にできます ディレクトリ。起動時にApacheによって読み取られます。
選択したテキストエディタを開き、次の基本的な仮想ホスト構成ファイルを作成します。
/etc/apache2/sites-available/example.com.conf<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com/public_html
    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
 ServerName:この仮想ホスト構成に一致する必要があるドメイン。これはあなたのドメイン名である必要があります。-  
ServerAlias:この仮想ホストにも一致する必要がある他のすべてのドメインまたはサブドメイン(通常はwww) サブドメイン。 -  
DocumentRoot:Apacheがドメインファイルを提供するディレクトリ。 Options:このディレクティブは、特定のディレクトリで使用できるサーバー機能を制御します。-Indexes:ディレクトリリストを防止します。-  
FollowSymLinks:このオプションを有効にすると、Apacheはシンボリックリンクをたどります。 
-  
AllowOverride:.htaccessで宣言されているディレクティブを指定します ファイルは構成ディレクティブをオーバーライドできます。 -  
ErrorLog、CustomLog:ログファイルの場所を指定します。 
必要に応じてファイルを編集し、保存します。
構成ファイルには任意の名前を付けることができます。ベストプラクティスは、仮想ホスト構成ファイルの名前としてドメイン名を使用することです。
 新しい仮想ホストファイルを有効にするには、a2ensiteを使用します 仮想ホストファイルからsites-enabledへのシンボリックリンクを作成するヘルパースクリプト ディレクトリ:
sudo a2ensite example.com
 もう1つのオプションは、以下に示すシンボリックリンクを手動で作成することです。
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/ 構成を有効にしたら、構文が正しいかどうかをテストします。
sudo apachectl configtest エラーがない場合は、次の出力が表示されます。
Syntax OK
 
 apache2を再起動します 変更を有効にするためのサービス:
sudo systemctl restart apache2 
 すべてが期待どおりに機能することを確認するには、http://example.comを開きます。 お気に入りのブラウザで、次のように表示されます: