Ubuntu 16.04でApache仮想ホストを設定する方法

前書き

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

Apacheは、その機能とコンポーネントを個別にカスタマイズおよび構成できる個々のユニットに分割します。 個々のサイトまたはドメインを記述する基本単位は、「+仮想ホスト」と呼ばれます。

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

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

このガイドでは、Ubuntu 16.04 VPSでApache仮想ホストをセットアップする方法を説明します。 このプロセスでは、リクエストしているドメインに応じて、異なる訪問者に異なるコンテンツを提供する方法を学びます。

前提条件

このチュートリアルを開始する前に、手順1〜4で説明されているようにhttps://www.digitalocean.com/community/articles/initial-server-setup-with-ubuntu-16-04 [非ルートユーザーを作成]を行う必要があります。ここに。

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

sudo apt-get update
sudo apt-get install apache2

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

このガイドの目的のために、設定では `+ example.com `の仮想ホストと ` test.com +`の仮想ホストを作成します。 これらはガイド全体で参照されますが、従う際に独自のドメインまたは値を置き換える必要があります。

DigitalOceanでドメイン名を設定する方法を学ぶには、このリンクに従ってください。 使用できるドメインがない場合は、ダミー値を使用できます。

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

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

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

+ document root +(提供するコンテンツを見つけるためにApacheが調べるトップレベルのディレクトリ)は、 `+ / var / www +`ディレクトリの下の個々のディレクトリに設定されます。 ここで、作成する予定の両方の仮想ホスト用のディレクトリを作成します。

これらの各ディレクトリ内に、実際のファイルを保持する `+ public_html +`フォルダーを作成します。 これにより、ホスティングの柔軟性が向上します。

たとえば、サイトの場合、ディレクトリを次のように作成します。

sudo mkdir -p /var/www//public_html
sudo mkdir -p /var/www//public_html

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

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

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

sudo chown -R $USER:$USER /var/www//public_html
sudo chown -R $USER:$USER /var/www//public_html

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

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

sudo chmod -R 755 /var/www

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

ステップ3-各仮想ホストのデモページを作成する

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

デモを行うだけなので、ページは非常にシンプルになります。 各サイトに「+ index.html」ページを作成します。

「+ example.com 」から始めましょう。 次のように入力して、エディターで ` index.html`ファイルを開くことができます。

nano /var/www//public_html/index.html

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

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

<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body>
   <h1>Success!  The  virtual host is working!</h1>
 </body>
</html>

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

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

cp /var/www//public_html/index.html /var/www//public_html/index.html

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

nano /var/www//public_html/index.html

/var/www/test.com/public_html/index.html

<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body> <h1>Success!  The  virtual host is working!</h1>
 </body>
</html>

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

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

仮想ホストファイルは、仮想ホストの実際の構成を指定し、Apache Webサーバーがさまざまなドメインリクエストに応答する方法を指定するファイルです。

Apacheには、「+ 000-default.conf +」というデフォルトの仮想ホストファイルが付属しており、これをジャンプオフポイントとして使用できます。 これをコピーして、各ドメインの仮想ホストファイルを作成します。

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

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

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

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

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

sudo nano /etc/apache2/sites-available/.conf

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

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /var/www/html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

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

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

ServerAdmin

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

ServerName
ServerAlias

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

DocumentRoot /var/www//public_html

合計すると、virtualhostファイルは次のようになります。

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
   ServerAdmin
   ServerName
   ServerAlias
   DocumentRoot /var/www//public_html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

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

最初の仮想ホストをコピーし、2番目のドメイン用にカスタマイズする

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

コピーして開始します。

sudo cp /etc/apache2/sites-available/.conf /etc/apache2/sites-available/.conf

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

sudo nano /etc/apache2/sites-available/.conf

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

/etc/apache2/sites-available/test.com.conf

<VirtualHost *:80>
   ServerAdmin
   ServerName
   ServerAlias
   DocumentRoot /var/www//public_html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

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

ステップ5-新しい仮想ホストファイルを有効にする

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

`+ a2ensite +`ツールを使用して、次のように各サイトを有効にできます。

sudo a2ensite .conf
sudo a2ensite .conf

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

sudo a2dissite 000-default.conf

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

sudo systemctl restart apache2

他のドキュメントでは、 `+ service +`コマンドを使用した例を見ることもできます:

sudo service apache2 restart

このコマンドは引き続き機能しますが、systemdの `+ systemctl +`のラッパーになっているため、他のシステムで表示されるのに慣れている出力が得られない場合があります。

ステップ6-ローカルホストファイルのセットアップ(オプション)

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

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

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

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

sudo nano /etc/hosts

Windowsマシンを使用している場合は、http://support.microsoft.com/kb/923947 [hostsファイルを変更する手順を参照]からここにアクセスできます。

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

このガイドで使用したドメインの場合、VPS IPアドレスが「111.111.111.111」であると仮定して、hostsファイルの最後に次の行を追加できます。

/ etc / hosts

127.0.0.1   localhost
127.0.1.1   guest-desktop

これにより、コンピューター上の「+ example.com 」および「 test.com 」に対するすべてのリクエストが送信され、「 111.111.111.111+」のサーバーに送信されます。 これは、仮想ホストをテストするためにこれらのドメインの所有者ではない場合に必要なものです。

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

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

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

http://

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

image:https://assets.digitalocean.com/articles/apache_virt_hosts_1404/example.png [Apache virt host example]

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

http://

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

image:https://assets.digitalocean.com/articles/apache_virt_hosts_1404/test.png [Apache virt host test]

これらのサイトが両方とも正常に機能していれば、同じサーバー上で* 2 *仮想ホストを正常に構成できています。

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

この長期にアクセスする必要がある場合は、必要な各サイトのドメイン名とhttps://www.digitalocean.com/community/articles/how-to-set-up-a-host-name-with-を購入することを検討してくださいdigitalocean [VPSサーバーを指すように設定]。

結論

従えば、2つの別個のドメイン名を処理する単一のサーバーが必要になります。 上記の手順に従って仮想ホストを追加すると、このプロセスを拡張できます。

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

Related