前書き

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

Apacheは、その機能とコンポーネントを個別にカスタマイズおよび構成できる個々のユニットに分割します。 個々のサイトまたはドメインを記述する基本単位は、「仮想ホスト」と呼ばれます。 仮想ホストを使用すると、一致するシステムを使用して、1つのサーバーで複数のドメインまたはインターフェイスをホストできます。 これは、単一のVPSから複数のサイトをホストする場合に関係します。

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

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

前提条件

このガイドを始める前に、最初に完了する必要があるいくつかのステップがあります。

`+ sudo +`権限を持つ非rootユーザーでCentOS 7サーバーにアクセスする必要があります。 これをまだ構成していない場合は、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 [CentOS 7初期サーバーセットアップガイド]を実行して、これを作成できます。アカウント。

仮想ホストを構成するには、Apacheもインストールする必要があります。 まだ行っていない場合は、 `+ yum +`を使用して、CentOSのデフォルトのソフトウェアリポジトリからApacheをインストールできます。

sudo yum -y install httpd

次に、ApacheをCentOSサービスとして有効にして、再起動後に自動的に開始されるようにします。

sudo systemctl enable httpd.service

これらの手順が完了したら、SSHを介して非rootユーザーアカウントとしてログインし、チュートリアルを続行します。

*注意:*このガイドの設定例では、1つの仮想ホストを「」用に、別の仮想ホストを「」用に作成します。 これらはガイド全体で参照されますが、従う際に独自のドメインまたは値を置き換える必要があります。 DigitalOceanでドメイン名を設定する方法については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [このリンク]をご覧ください。

実際に使用するドメインがない場合は、チュートリアルの終わり近くでダミー値を使用して仮想ホスト構成をテストする方法を示します。

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

まず、訪問者に提供するサイトデータを保持するディレクトリ構造を作成する必要があります。

ドキュメントルート(提供するコンテンツを見つけるためにApacheが調べるトップレベルディレクトリ)は、 `+ / var / www +`ディレクトリ内の個々のディレクトリに設定されます。 ここで、作成を計画している仮想ホストごとにディレクトリを作成します。

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

`+ mkdir `コマンドを使用してこれらのディレクトリを作成できます(その中にネストされたフォルダーを持つフォルダーを作成できるようにする ` -p +`フラグを使用):

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

の部分は、VPSから提供するドメイン名を表していることに注意してください。

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

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

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

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

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

sudo chmod -R 755 /var/www

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

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

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

これはデモンストレーションとテスト用であるため、ページは非常にシンプルになります。 特定のドメインを識別するサイトごとに `+ index.html`ページを作成するだけです。

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

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

このファイルで、ページが接続されているサイトを示す単純なHTMLドキュメントを作成します。 このガイドでは、最初のドメインのファイルは次のようになります。

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

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

このファイルをコピーして、2番目のサイトの `+ index.html +`のテンプレートとして使用するには、次のように入力します。

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

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

nano /var/www//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に伝えるディレクトリを設定する必要があります。 `+ sites-available `ディレクトリはすべての仮想ホストファイルを保持し、 ` sites-enabled +`ディレクトリは公開したい仮想ホストへのシンボリックリンクを保持します。 次のように入力して、両方のディレクトリを作成できます。

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

*注:*このディレクトリレイアウトはDebianの貢献者によって導入されましたが、仮想ホストの管理の柔軟性を高めるためにここに含めています(この方法で仮想ホストを一時的に有効および無効にする方が簡単です)。

次に、 `+ sites-enabled +`ディレクトリで仮想ホストを探すようApacheに指示する必要があります。 これを実現するために、Apacheのメイン構成ファイルを編集し、追加の構成ファイル用のオプションのディレクトリを宣言する行を追加します。

sudo nano /etc/httpd/conf/httpd.conf

この行をファイルの最後に追加します。

IncludeOptional sites-enabled/*.conf

その行の追加が完了したら、ファイルを保存して閉じます。 これで、最初の仮想ホストファイルを作成する準備ができました。

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

root権限でエディターで新しいファイルを開くことから始めます。

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

*注意:*概説した設定により、すべての仮想ホストファイルは_must_で `+ .conf +`で終わります。

最初に、ポート80(デフォルトのHTTPポート)でリッスンしている仮想ホストとしてコンテンツを指定するタグのペアを作成することから始めます。

<VirtualHost *:80>

</VirtualHost>

次に、メインサーバー名を宣言します。 また、を指すサーバーエイリアスを作成して、同じコンテンツをリクエストして配信します。

<VirtualHost *:80>
   ServerName
   ServerAlias
</VirtualHost>

*注:*ドメインの + www +`バージョンが正しく機能するためには、ドメインのDNS構成に、サーバーのIPへの `+ www +`リクエストを指すAレコードまたはCNAMEが必要です。 ワイルドカード( `+ * +)レコードも機能します。 DNSレコードの詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean#step-three%E2%80%をご覧ください。 94configure-your-domain [ホスト名セットアップガイド]。

最後に、一般公開されているWebドキュメントのルートディレクトリをポイントします。 また、この特定のサイトのエラーおよびリクエストログの保存場所をApacheに指示します。

<VirtualHost *:80>

   ServerName
   ServerAlias
   DocumentRoot /var/www//public_html
   ErrorLog /var/www//error.log
   CustomLog /var/www//requests.log combined
</VirtualHost>

これらのアイテムの書き込みが終了したら、ファイルを保存して閉じることができます。

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

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

`+ cp +`でコピーすることから始めます:

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

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

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

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

<VirtualHost *:80>
   ServerName
   DocumentRoot /var/www//public_html
   ServerAlias
   ErrorLog /var/www//error.log
   CustomLog /var/www//requests.log combined
</VirtualHost>

これらの変更が完了したら、ファイルを保存して閉じることができます。

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

仮想ホストファイルを作成したので、Apacheがそれらを訪問者に提供できるように、それらを有効にする必要があります。 これを行うために、 `+ sites-enabled +`ディレクトリに各仮想ホストのシンボリックリンクを作成できます。

sudo ln -s /etc/httpd/sites-available/.conf /etc/httpd/sites-enabled/.conf
sudo ln -s /etc/httpd/sites-available/.conf /etc/httpd/sites-enabled/.conf

終了したら、Apacheを再起動してこれらの変更を有効にします。

sudo apachectl restart

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

この手順をテストするために実際のドメインの代わりにサンプルドメインを使用している場合、ローカルコンピューターの `+ hosts +`ファイルを一時的に変更することで仮想ホストの機能をテストできます。 これは、登録済みドメインを使用している場合にDNSシステムが行うように、設定したドメインへの要求をインターセプトし、VPSサーバーにポイントします。 ただし、これはコンピューターからのみ機能し、テスト目的でのみ役立ちます。

*注意:*これらの手順では、VPSサーバーではなく、ローカルコンピューターで操作していることを確認してください。 そのコンピューターの管理者資格情報にアクセスする必要があります。

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

sudo nano /etc/hosts

Windowsマシンを使用している場合、hostsファイルを変更する手順については、http://support.microsoft.com/kb/923947 [こちら]をご覧ください。

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

127.0.0.1   localhost
127.0.1.1   guest-desktop

これにより、ローカルコンピューター上の「」および「」に対するすべてのリクエストが送信され、「++」のサーバーに送信されます。

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

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

http://

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

画像:https://assets.digitalocean.com/articles/apache_virt_hosts_centos7/virtual_host_success.png [成功! example.com仮想ホストは機能しています!]

同様に、他のドメインにアクセスすると、そのドメイン用に作成したファイルが表示されます。

構成したすべてのサイトが正常に機能する場合、同じCentOSサーバー上で新しいApache仮想ホストを正常に構成しています。

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

結論

この時点で、個別のドメインを持つ複数のサイトを処理する単一のCentOS 7サーバーが必要です。 上記で説明した手順に従って、後で追加の仮想ホストを作成することで、このプロセスを拡張できます。 Apacheが処理できるドメイン名の数にソフトウェアの制限はないので、サーバーが処理できる数だけ自由に作成してください。