Ubuntu16.04でApache仮想ホストを設定する方法
序章
Apache Webサーバーは、インターネット上でWebコンテンツを提供する最も一般的な方法です。 インターネット上のすべてのアクティブなWebサイトの半分以上を占め、非常に強力で柔軟性があります。
Apacheは、その機能とコンポーネントを、個別にカスタマイズおよび構成できる個々のユニットに分割します。 個々のサイトまたはドメインを記述する基本単位は、virtual host
と呼ばれます。
これらの指定により、管理者は1つのサーバーを使用して、マッチングメカニズムを使用することにより、単一のインターフェイスまたはIPから複数のドメインまたはサイトをホストできます。 これは、単一のサーバーから複数のサイトをホストしようとしている人に関係があります。
構成された各ドメインは、訪問者をそのサイトの情報を保持する特定のディレクトリに誘導し、同じサーバーが他のサイトにも責任があることを示すことはありません。 このスキームは、サーバーが負荷を処理できる限り、ソフトウェアの制限なしに拡張できます。
このガイドでは、Ubuntu16.04サーバーでApache仮想ホストを設定する方法について説明します。 このプロセスでは、要求しているドメインに応じて、さまざまな訪問者にさまざまなコンテンツを提供する方法を学習します。
前提条件
このチュートリアルを開始する前に、ここの手順1〜4で説明されているように、sudo対応の非rootユーザーを作成する必要があります。
これらの手順を実行するには、Apacheもインストールする必要があります。 まだ行っていない場合は、apt-get
を介してApacheをサーバーにインストールできます。
- sudo apt-get update
- sudo apt-get install apache2
これらの手順が完了したら、開始できます。
このガイドの目的のために、この構成では、example.com
用の仮想ホストとtest.com
用の仮想ホストを作成します。 これらはガイド全体で参照されますが、フォローしながら独自のドメインまたは値に置き換える必要があります。
ダミー値を使用している場合は、後でローカルホストファイルを編集して構成をテストする方法を示します。 これにより、ドメイン名を介して他の訪問者がコンテンツを利用できない場合でも、自宅のコンピューターから構成をテストできます。
ステップ1—ディレクトリ構造を作成する
最初のステップは、訪問者に提供するサイトデータを保持するディレクトリ構造を作成することです。
document root
(Apacheが提供するコンテンツを見つけるために調べる最上位ディレクトリ)は、/var/www
ディレクトリの下の個々のディレクトリに設定されます。 ここに、作成する予定の両方の仮想ホスト用のディレクトリを作成します。
これらのディレクトリのそれぞれの中に、実際のファイルを保持するpublic_html
フォルダを作成します。 これにより、ホスティングにある程度の柔軟性がもたらされます。
たとえば、私たちのサイトでは、次のようなディレクトリを作成します。
- sudo mkdir -p /var/www/example.com/public_html
- sudo mkdir -p /var/www/test.com/public_html
赤い部分は、VPSから提供したいドメイン名を表しています。
ステップ2—権限を付与する
これでファイルのディレクトリ構造ができましたが、それらはrootユーザーが所有しています。 通常のユーザーがWebディレクトリ内のファイルを変更できるようにする場合は、次のようにして所有権を変更できます。
- sudo chown -R $USER:$USER /var/www/example.com/public_html
- sudo chown -R $USER:$USER /var/www/test.com/public_html
$USER
変数は、ENTER
を押したときと同じように、現在ログインしているユーザーの値を取ります。 これにより、通常のユーザーは、コンテンツを保存するpublic_html
サブディレクトリを所有するようになります。
また、アクセス許可を少し変更して、一般的なWebディレクトリとそれに含まれるすべてのファイルとフォルダへの読み取りアクセスが許可されていることを確認して、ページを正しく提供できるようにする必要があります。
- sudo chmod -R 755 /var/www
これで、Webサーバーにコンテンツを提供するために必要なアクセス許可が付与され、ユーザーは必要なフォルダー内にコンテンツを作成できるようになります。
ステップ3—仮想ホストごとにデモページを作成する
ディレクトリ構造が整っています。 提供するコンテンツを作成しましょう。
デモンストレーションを行うだけなので、ページは非常にシンプルになります。 サイトごとにindex.html
ページを作成します。
example.com
から始めましょう。 次のように入力して、エディターでindex.html
ファイルを開くことができます。
- nano /var/www/example.com/public_html/index.html
このファイルで、接続先のサイトを示す簡単なHTMLドキュメントを作成します。 ファイルは次のようになります。
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
終了したら、ファイルを保存して閉じます。
このファイルをコピーして、次のように入力することにより、2番目のサイトのベースとして使用できます。
- cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
次に、ファイルを開いて、関連する情報を変更できます。
- nano /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
で終わる必要があります。
最初の仮想ホストファイルの作成
最初のドメインのファイルをコピーすることから始めます。
- sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
root権限でエディタで新しいファイルを開きます。
- sudo nano /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つのディレクティブを追加する必要があります。 1つ目は、ServerName
と呼ばれ、この仮想ホスト定義に一致する必要があるベースドメインを確立します。 これはおそらくあなたのドメインになります。 2番目はServerAlias
と呼ばれ、ベース名であるかのように一致する必要がある追加の名前を定義します。 これは、www
のように定義したホストを照合する場合に便利です。
ServerName example.com
ServerAlias www.example.com
基本的な仮想ホストファイルに対して変更する必要がある他の唯一のことは、このドメインのドキュメントルートの場所です。 必要なディレクトリはすでに作成されているので、作成したディレクトリを反映するようにDocumentRoot
ディレクティブを変更する必要があります。
DocumentRoot /var/www/example.com/public_html
全体として、仮想ホストファイルは次のようになります。
<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番目の仮想ホストファイルを作成できます。
それをコピーすることから始めます:
- sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
エディターでroot権限で新しいファイルを開きます。
- sudo nano /etc/apache2/sites-available/test.com.conf
次に、2番目のドメインを参照するために、すべての情報を変更する必要があります。 終了すると、次のようになります。
<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
ツールを使用して、次のように各サイトを有効にすることができます。
- sudo a2ensite example.com.conf
- sudo a2ensite test.com.conf
次に、000-default.conf
で定義されているデフォルトサイトを無効にします。
- sudo a2dissite 000-default.conf
終了したら、Apacheを再起動して、これらの変更を有効にする必要があります。
- sudo systemctl restart apache2
手順6—ローカルホストファイルの設定(オプション)
この手順をテストするために所有している実際のドメイン名を使用しておらず、代わりにいくつかのサンプルドメインを使用している場合は、ローカルのhosts
ファイルを一時的に変更することで、少なくともこのプロセスの機能をテストできます。コンピューター。
これにより、登録済みドメインを使用している場合にDNSシステムが行うのと同じように、構成したドメインに対するすべての要求がインターセプトされ、サーバーにポイントされます。 ただし、これはコンピュータからのみ機能し、テスト目的でのみ役立ちます。
これらの手順では、サーバーではなく、ローカルコンピューターで操作していることを確認してください。 コンピューターの管理者パスワードを知っているか、管理者グループのメンバーである必要があります。
MacまたはLinuxコンピューターを使用している場合は、次のように入力して、管理者権限でローカルファイルを編集します。
- sudo nano /etc/hosts
Windowsマシンを使用している場合は、ここでhostsファイルを変更する手順を見つけることができます。
追加する必要のある詳細は、VPSサーバーのパブリックIPアドレスと、そのVPSに到達するために使用するドメインです。
このガイドで使用したドメインの場合、VPSIPアドレスが203.0.113.10
であると仮定すると、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.com
およびtest.com
に対するすべての要求が送信され、203.0.113.10
のサーバーに送信されます。 これは、仮想ホストをテストするために実際にこれらのドメインの所有者でない場合に必要なものです。
ファイルを保存して閉じます。
ステップ7—結果をテストする
仮想ホストを構成したので、Webブラウザーで構成したドメインに移動して、セットアップを簡単にテストできます。
http://example.com
次のようなページが表示されます。
同様に、2番目のページにアクセスできる場合:
http://test.com
2番目のサイト用に作成したファイルが表示されます。
これらのサイトの両方が正常に機能する場合は、同じサーバー上に2つの仮想ホストが正常に構成されています。
自宅のコンピューターのhostsファイルを調整した場合は、構成が機能することを確認したので、追加した行を削除することをお勧めします。 これにより、hostsファイルが実際には必要のないエントリでいっぱいになるのを防ぐことができます。
この長期的なアクセスが必要な場合は、必要なサイトごとにドメイン名を購入し、VPSサーバーを指すように設定することを検討してください。
結論
従うと、2つの別々のドメイン名を処理する単一のサーバーができたはずです。 上記で概説した手順に従ってこのプロセスを拡張し、追加の仮想ホストを作成できます。
Apacheが処理できるドメイン名の数にソフトウェアの制限はありません。そのため、サーバーが処理できる数だけ自由に作成してください。