序章

Apache Webサーバーは、インターネット上でWebコンテンツを提供する最も一般的な方法です。 インターネット上のすべてのアクティブなWebサイトの半分以上を占め、非常に強力で柔軟性があります。

Apacheは、その機能とコンポーネントを、個別にカスタマイズおよび構成できる個々のユニットに分割します。 個々のサイトまたはドメインを説明する基本単位は、 virtual host.

これらの指定により、管理者は1つのサーバーを使用して、マッチングメカニズムを使用することにより、単一のインターフェイスまたはIPから複数のドメインまたはサイトをホストできます。 これは、単一のサーバーから複数のサイトをホストしようとしている人に関係があります。

構成された各ドメインは、訪問者をそのサイトの情報を保持する特定のディレクトリに誘導し、同じサーバーが他のサイトにも責任があることを示すことはありません。 このスキームは、サーバーが負荷を処理できる限り、ソフトウェアの制限なしに拡張できます。

このガイドでは、Ubuntu16.04サーバーでApache仮想ホストを設定する方法について説明します。 このプロセスでは、要求しているドメインに応じて、さまざまな訪問者にさまざまなコンテンツを提供する方法を学習します。

前提条件

このチュートリアルを開始する前に、ここの手順1〜4で説明されているように、sudo対応の非rootユーザーを作成する必要があります。

これらの手順を実行するには、Apacheもインストールする必要があります。 まだ行っていない場合は、次の方法でApacheをサーバーにインストールできます。 apt-get:

  1. sudo apt-get update
  2. sudo apt-get install apache2

これらの手順が完了したら、開始できます。

このガイドの目的のために、私たちの構成は仮想ホストを作成します example.com と別の test.com. これらはガイド全体で参照されますが、フォローしながら独自のドメインまたは値に置き換える必要があります。

ダミー値を使用している場合は、後でローカルホストファイルを編集して構成をテストする方法を示します。 これにより、ドメイン名を介して他の訪問者がコンテンツを利用できない場合でも、自宅のコンピューターから構成をテストできます。

ステップ1—ディレクトリ構造を作成する

最初のステップは、訪問者に提供するサイトデータを保持するディレクトリ構造を作成することです。

私たちの document root (Apacheが提供するコンテンツを見つけるために調べる最上位ディレクトリ)は、 /var/www ディレクトリ。 ここに、作成する予定の両方の仮想ホスト用のディレクトリを作成します。

これらのディレクトリのそれぞれの中に、 public_html 実際のファイルを保持するフォルダー。 これにより、ホスティングにある程度の柔軟性がもたらされます。

たとえば、私たちのサイトでは、次のようなディレクトリを作成します。

  1. sudo mkdir -p /var/www/example.com/public_html
  2. sudo mkdir -p /var/www/test.com/public_html

赤い部分は、VPSから提供したいドメイン名を表しています。

ステップ2—権限を付与する

これでファイルのディレクトリ構造ができましたが、rootユーザーが所有しています。 通常のユーザーがWebディレクトリ内のファイルを変更できるようにする場合は、次のようにして所有権を変更できます。

  1. sudo chown -R $USER:$USER /var/www/example.com/public_html
  2. sudo chown -R $USER:$USER /var/www/test.com/public_html

The $USER 変数は、を押したときと同じように、現在ログインしているユーザーの値を取ります ENTER. これにより、通常のユーザーが所有するようになります public_html コンテンツを保存するサブディレクトリ。

また、アクセス許可を少し変更して、一般的なWebディレクトリとそれに含まれるすべてのファイルとフォルダへの読み取りアクセスが許可されていることを確認して、ページを正しく提供できるようにする必要があります。

  1. sudo chmod -R 755 /var/www

これで、Webサーバーにコンテンツを提供するために必要なアクセス許可が与えられ、ユーザーは必要なフォルダー内にコンテンツを作成できるようになります。

ステップ3—仮想ホストごとにデモページを作成する

ディレクトリ構造が整っています。 提供するコンテンツを作成しましょう。

デモンストレーションを行うだけなので、ページは非常にシンプルになります。 私たちはただ作るつもりです index.html 各サイトのページ。

から始めましょう example.com. 私たちは開くことができます index.html 次のように入力して、エディタでファイルを作成します。

  1. nano /var/www/example.com/public_html/index.html

このファイルで、接続先のサイトを示す簡単なHTMLドキュメントを作成します。 ファイルは次のようになります。

/var/www/example.com/public_html/index.html
<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success!  The example.com virtual host is working!</h1>
  </body>
</html>

終了したら、ファイルを保存して閉じます。

このファイルをコピーして、次のように入力することにより、2番目のサイトのベースとして使用できます。

  1. cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

次に、ファイルを開いて、関連する情報を変更できます。

  1. nano /var/www/test.com/public_html/index.html
/var/www/test.com/public_html/index.html
<html>
  <head>
    <title>Welcome to Test.com!</title>
  </head>
  <body> <h1>Success!  The test.com virtual host is working!</h1>
  </body>
</html>

このファイルも保存して閉じます。 これで、仮想ホスト構成をテストするために必要なページができました。

ステップ4—新しい仮想ホストファイルを作成する

仮想ホストファイルは、仮想ホストの実際の構成を指定し、ApacheWebサーバーがさまざまなドメイン要求にどのように応答するかを指示するファイルです。

Apacheには、と呼ばれるデフォルトの仮想ホストファイルが付属しています 000-default.conf 出発点として使用できます。 これをコピーして、ドメインごとに仮想ホストファイルを作成します。

1つのドメインから始めて構成し、2番目のドメイン用にコピーしてから、さらにいくつかの調整が必要になります。 デフォルトのUbuntu構成では、各仮想ホストファイルがで終わる必要があります .conf.

最初の仮想ホストファイルの作成

最初のドメインのファイルをコピーすることから始めます。

  1. sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

ルート権限でエディターで新しいファイルを開きます。

  1. sudo nano /etc/apache2/sites-available/example.com.conf

ファイルは次のようになります(ファイルをより親しみやすくするために、コメントはここで削除されています)。

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ご覧のとおり、ここにはあまりありません。 ここで最初のドメインのアイテムをカスタマイズし、いくつかのディレクティブを追加します。 この仮想ホストセクションは、デフォルトのHTTPポートであるポート80で行われるanyリクエストと一致します。

まず、変更する必要があります ServerAdmin サイト管理者が電子メールを受信できる電子メールへのディレクティブ。

ServerAdmin [email protected]

この後、2つのディレクティブを追加する必要があります。 最初の、と呼ばれる ServerName、この仮想ホスト定義に一致する必要があるベースドメインを確立します。 これはおそらくあなたのドメインになります。 2番目の ServerAliasは、ベース名であるかのように一致する必要がある追加の名前を定義します。 これは、次のように、定義したホストを照合するのに役立ちます。 www:

ServerName example.com
ServerAlias www.example.com

基本的な仮想ホストファイルに対して変更する必要がある他の唯一のことは、このドメインのドキュメントルートの場所です。 必要なディレクトリはすでに作成されているので、変更する必要があります DocumentRoot 作成したディレクトリを反映するディレクティブ:

DocumentRoot /var/www/example.com/public_html

全体として、仮想ホストファイルは次のようになります。

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ファイルを保存して閉じます。

最初の仮想ホストのコピーと2番目のドメインのカスタマイズ

最初の仮想ホストファイルが確立されたので、そのファイルをコピーして必要に応じて調整することで、2番目の仮想ホストファイルを作成できます。

それをコピーすることから始めます:

  1. sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

エディターでroot権限で新しいファイルを開きます。

  1. sudo nano /etc/apache2/sites-available/test.com.conf

次に、2番目のドメインを参照するために、すべての情報を変更する必要があります。 終了すると、次のようになります。

/etc/apache2/sites-available/test.com.conf
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

終了したら、ファイルを保存して閉じます。

手順5—新しい仮想ホストファイルを有効にする

仮想ホストファイルを作成したので、それらを有効にする必要があります。 Apacheには、これを可能にするいくつかのツールが含まれています。

使用できます a2ensite このような各サイトを有効にするツール:

  1. sudo a2ensite example.com.conf
  2. sudo a2ensite test.com.conf

次に、で定義されているデフォルトのサイトを無効にします 000-default.conf:

  1. sudo a2dissite 000-default.conf

終了したら、Apacheを再起動して、これらの変更を有効にする必要があります。

  1. sudo systemctl restart apache2

手順6—ローカルホストファイルの設定(オプション)

この手順をテストするために所有している実際のドメイン名を使用しておらず、代わりにいくつかのサンプルドメインを使用している場合は、少なくとも一時的に変更することで、このプロセスの機能をテストできます。 hosts ローカルコンピュータ上のファイル。

これにより、登録済みドメインを使用している場合にDNSシステムが行うのと同じように、構成したドメインに対するすべての要求がインターセプトされ、サーバーにポイントされます。 ただし、これはコンピュータからのみ機能し、テスト目的でのみ役立ちます。

これらの手順では、サーバーではなく、ローカルコンピューターで操作していることを確認してください。 コンピューターの管理者パスワードを知っているか、管理者グループのメンバーである必要があります。

MacまたはLinuxコンピューターを使用している場合は、次のように入力して、管理者権限でローカルファイルを編集します。

  1. sudo nano /etc/hosts

Windowsマシンを使用している場合は、ここでhostsファイルを変更する手順を見つけることができます。

追加する必要のある詳細は、VPSサーバーのパブリックIPアドレスと、そのVPSに到達するために使用するドメインです。

このガイドで使用したドメインの場合、VPSIPアドレスが 203.0.113.10、hostsファイルの最後に次の行を追加できます。

/ etc / hosts
127.0.0.1   localhost
127.0.1.1   guest-desktop
203.0.113.10 example.com
203.0.113.10 test.com

これにより、 example.comtest.com 私たちのコンピューターでそれらを私たちのサーバーに送信します 203.0.113.10. これは、仮想ホストをテストするために実際にこれらのドメインの所有者でない場合に必要なものです。

ファイルを保存して閉じます。

ステップ7—結果をテストする

仮想ホストが構成されたので、Webブラウザーで構成したドメインに移動して、セットアップを簡単にテストできます。

http://example.com

次のようなページが表示されます。

同様に、2番目のページにアクセスできる場合:

http://test.com

2番目のサイト用に作成したファイルが表示されます。

これらのサイトの両方が正常に機能する場合は、同じサーバー上に2つの仮想ホストが正常に構成されています。

自宅のコンピューターのhostsファイルを調整した場合は、構成が機能することを確認したので、追加した行を削除することをお勧めします。 これにより、hostsファイルが実際には必要のないエントリでいっぱいになるのを防ぐことができます。

この長期的なアクセスが必要な場合は、必要なサイトごとにドメイン名を購入し、VPSサーバーを指すように設定することを検討してください。

結論

従うと、2つの別々のドメイン名を処理する単一のサーバーができたはずです。 上記で概説した手順に従ってこのプロセスを拡張し、追加の仮想ホストを作成できます。

Apacheが処理できるドメイン名の数にソフトウェアの制限はありません。そのため、サーバーが処理できる数だけ自由に作成してください。