Ubuntu14.04LTSでApache仮想ホストを設定する方法
序章
Apache Webサーバーは、インターネット上でWebコンテンツを提供する最も一般的な方法です。 インターネット上のすべてのアクティブなWebサイトの半分以上を占め、非常に強力で柔軟性があります。
Apacheは、その機能とコンポーネントを、個別にカスタマイズおよび構成できる個々のユニットに分割します。 個々のサイトまたはドメインを説明する基本単位は、 virtual host
.
これらの指定により、管理者は1つのサーバーを使用して、マッチングメカニズムを使用することにより、単一のインターフェイスまたはIPから複数のドメインまたはサイトをホストできます。 これは、単一のVPSから複数のサイトをホストしようとしている人に関係があります。
構成された各ドメインは、訪問者をそのサイトの情報を保持する特定のディレクトリに誘導し、同じサーバーが他のサイトにも責任があることを示すことはありません。 このスキームは、サーバーが負荷を処理できる限り、ソフトウェアの制限なしに拡張できます。
このガイドでは、Ubuntu14.04VPSでApache仮想ホストを設定する方法について説明します。 このプロセスでは、要求しているドメインに応じて、さまざまな訪問者にさまざまなコンテンツを提供する方法を学習します。
前提条件
このチュートリアルを開始する前に、ここの手順1〜4で説明されているように、非rootユーザーを作成する必要があります。
これらの手順を実行するには、Apacheもインストールする必要があります。 まだ行っていない場合は、次の方法でApacheをサーバーにインストールできます。 apt-get
:
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 / 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
The $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ドキュメントを作成します。 私のファイルは次のようになります。
Example.com span>へようこそ! 成功! example.com仮想ホストが機能しています!
終了したら、ファイルを保存して閉じます。
このファイルをコピーして、次のように入力することにより、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
Test.com span>へようこそ! 成功! test.com仮想ホストが機能しています!
このファイルも保存して閉じます。 これで、仮想ホスト構成をテストするために必要なページができました。
ステップ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
ルート権限でエディターで新しいファイルを開きます。
sudo nano / etc / apache2 / sites-available / example.com .conf
ファイルは次のようになります(ファイルをより親しみやすくするために、ここでコメントを削除しました)。
ServerAdminウェブマスター @localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog ${APACHE_LOG_DIR}/access.log結合
ご覧のとおり、ここにはあまりありません。 ここで最初のドメインのアイテムをカスタマイズし、いくつかのディレクティブを追加します。 この仮想ホストセクションは、デフォルトのHTTPポートであるポート80で行われるanyリクエストと一致します。
まず、変更する必要があります ServerAdmin
サイト管理者が電子メールを受信できる電子メールへのディレクティブ。
ServerAdmin管理者 @例 .com
この後、2つのディレクティブを追加する必要があります。 最初の、と呼ばれる ServerName
、この仮想ホスト定義に一致する必要があるベースドメインを確立します。 これはおそらくあなたのドメインになります。 2番目の ServerAlias
は、ベース名であるかのように一致する必要がある追加の名前を定義します。 これは、次のように、定義したホストを照合するのに役立ちます。 www
:
ServerName example.com ServerAlias www.example.com
基本的な仮想ホストファイルに対して変更する必要がある他の唯一のことは、このドメインのドキュメントルートの場所です。 必要なディレクトリはすでに作成されているので、変更する必要があります DocumentRoot
作成したディレクトリを反映するディレクティブ:
DocumentRoot / var / www / example.com / public_html
全体として、仮想ホストファイルは次のようになります。
ServerAdmin管理者 @例 .com 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結合
ファイルを保存して閉じます。
最初の仮想ホストをコピーして、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番目のドメインを参照するために、すべての情報を変更する必要があります。 終了すると、次のようになります。
ServerAdmin管理者 @テスト .com 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結合
終了したら、ファイルを保存して閉じます。
ステップ5—新しい仮想ホストファイルを有効にする
仮想ホストファイルを作成したので、それらを有効にする必要があります。 Apacheには、これを可能にするいくつかのツールが含まれています。
使用できます a2ensite
このような各サイトを有効にするツール:
sudo a2ensite example.com .conf sudo a2ensite test.com .conf
終了したら、Apacheを再起動して、これらの変更を有効にする必要があります。
sudo service apache2 restart
次のようなメッセージが表示される可能性があります。
* Restarting web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
これは、当サイトに影響を与えない無害なメッセージです。
ステップ6—ローカルホストファイルを設定する(オプション)
この手順をテストするために所有している実際のドメイン名を使用しておらず、代わりにいくつかのサンプルドメインを使用している場合は、少なくとも一時的に変更することで、このプロセスの機能をテストできます。 hosts
ローカルコンピュータ上のファイル。
これにより、登録済みドメインを使用している場合にDNSシステムが行うのと同じように、構成したドメインに対するすべての要求がインターセプトされ、それらがVPSサーバーを指すようになります。 ただし、これはコンピュータからのみ機能し、テスト目的でのみ役立ちます。
これらの手順では、VPSサーバーではなく、ローカルコンピューターで操作していることを確認してください。 コンピューターの管理者パスワードを知っているか、管理者グループのメンバーである必要があります。
MacまたはLinuxコンピューターを使用している場合は、次のように入力して、管理者権限でローカルファイルを編集します。
sudo nano /etc/hosts
Windowsマシンを使用している場合は、ここでhostsファイルを変更する手順を見つけることができます。
追加する必要のある詳細は、VPSサーバーのパブリックIPアドレスと、そのVPSに到達するために使用するドメインです。
このガイドで使用したドメインの場合、VPSIPアドレスが 111.111.111.111
、hostsファイルの最後に次の行を追加できます。
127.0.0.1 localhost 127.0.1.1 guest-desktop 111.111.111.111 example.com 111.111.111.111 test.com
これにより、 example.com
と test.com
私たちのコンピューターでそれらを私たちのサーバーに送信します 111.111.111.111
. これは、仮想ホストをテストするために実際にこれらのドメインの所有者でない場合に必要なものです。
ファイルを保存して閉じます。
ステップ7—結果をテストする
仮想ホストが構成されたので、Webブラウザーで構成したドメインに移動して、セットアップを簡単にテストできます。
http:// example.com
次のようなページが表示されます。
同様に、2番目のページにアクセスできる場合:
http:// test.com
2番目のサイト用に作成したファイルが表示されます。
これらのサイトの両方が正常に機能する場合は、同じサーバー上に2つの仮想ホストが正常に構成されています。
自宅のコンピューターのhostsファイルを調整した場合は、構成が機能することを確認したので、追加した行を削除することをお勧めします。 これにより、hostsファイルが実際には必要のないエントリでいっぱいになるのを防ぐことができます。
この長期的なアクセスが必要な場合は、必要なサイトごとにドメイン名を購入し、VPSサーバーを指すように設定することを検討してください。
結論
従うと、2つの別々のドメイン名を処理する単一のサーバーができたはずです。 上記で概説した手順に従ってこのプロセスを拡張し、追加の仮想ホストを作成できます。
Apacheが処理できるドメイン名の数にソフトウェアの制限はありません。そのため、サーバーが処理できる数だけ自由に作成してください。