Apache Webサーバーは、インターネット上でWebコンテンツを提供するための最も一般的な方法です。インターネット上のすべてのアクティブなWebサイトの半分以上を占め、非常に強力で柔軟性があります。
Apacheは、その機能とコンポーネントを個別にカスタマイズおよび構成できる個別のユニットに分割します。単一のサイトまたはドメインを記述する基本単位は、「仮想ホスト」と呼ばれます。
これらの割り当てにより、管理者はマッチングメカニズムを使用して、1つのサーバーを使用して単一のインターフェイスまたはIPから複数のドメインまたはサイトをホストできます。これは、単一のVPSで複数のサイトをホストしたい人に関係があります。
構成された各ドメインは、訪問者をそのサイトに関する情報を保持する特定のディレクトリに誘導し、同じサーバーに他のサイトを担当するように指示することはありません。サーバーが負荷を処理できる限り、このソリューションはソフトウェアの制限なしに拡張できます。
このガイドでは、Ubuntu 16.04VPSでApache仮想ホストをセットアップする方法を示します。このプロセスでは、要求されたドメインに基づいて、さまざまな訪問者にさまざまなコンテンツを提供する方法を学習します。
このチュートリアルを開始する前に、root以外のユーザーを作成する必要があります。サーバーをお持ちでない場合は、[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [Developer Lab]( https://cloud.tencent.com/developer/labs?from=10680)を試して、インストールを学び、[サーバーを購入](https://cloud.tencent.com/product/cvm?from=10680)します。
これらの手順を完了するには、Apacheもインストールする必要があります。まだ行っていない場合は、 apt-get
を使用して、次の方法でサーバーにApacheをインストールできます。
sudo apt-get update
sudo apt-get install apache2
これらの手順を完了したら、開始できます。
このガイドの目的のために、 example.com
と test.com
の仮想ホストを構成します。これらはガイド全体で参照されますが、以下の場合は独自のドメインまたは値に置き換える必要があります。
ドメイン名をお持ちでない場合は、こちら[ドメイン名を登録](https://dnspod.cloud.tencent.com/)にアクセスすることをお勧めします。
後で、ダミー値を使用するときに構成をテストするためにローカルホストファイルを編集する方法を示します。このようにして、ドメイン名を介して他の訪問者がコンテンツを利用できない場合でも、自宅のコンピューターで構成をテストできます。
私たちが取りたい最初のステップは、訪問者に提供するサイトデータを保持するディレクトリ構造を作成することです。
document root
(Apacheが提供するものを見つけるために探す最上位ディレクトリ)は、 / var / www
ディレクトリの下のさまざまなディレクトリに設定されます。ここに、作成する予定の2つの仮想ホスト用のディレクトリを作成します。
これらのディレクトリのそれぞれに、実際のファイルを保持する public_html
フォルダを作成します。これにより、ホスティングにある程度の柔軟性がもたらされます。
たとえば、当社のWebサイトの場合、次のようなディレクトリを作成します。
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
赤い部分は、VPSから提供するドメイン名を表しています。
これでファイルのディレクトリ構造ができましたが、それらはrootユーザーが所有しています。通常のユーザーがWebディレクトリ内のファイルを変更できるようにする場合は、次のようにして所有権を変更できます。
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
** Enter **を押すと、 $ USER
変数は現在ログインしているユーザーの値を採用します。これにより、通常のユーザーはコンテンツを保存する public_html
サブディレクトリを取得できます。
また、アクセス許可を少し変更して、一般的なWebディレクトリとそれに含まれるすべてのファイルとフォルダへの読み取りアクセスが許可されるようにし、ページを正しく提供できるようにする必要があります。
sudo chmod -R 755/var/www
これで、Webサーバーにコンテンツを提供するために必要な権限が与えられ、ユーザーは必要なフォルダーにコンテンツを作成できるようになります。
ディレクトリ構造があります。いくつかのサービスコンテンツを作成しましょう。
デモを行っているので、ページはとてもシンプルになります。 Webサイトごとに 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>
このファイルを保存して閉じます。これで、仮想ホスト構成をテストするために必要なページができました。
仮想ホストファイルは、仮想ホストの実際の構成を指定し、さまざまなドメイン要求に応答する方法を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>
ご覧のとおり、ここにはあまりコンテンツがありません。ここで最初のドメインのプロジェクトをカスタマイズし、他のいくつかの手順を追加します。この仮想ホスト部分は、ポート80(デフォルトのHTTPポート)で行われたすべての要求に一致します。
まず、 ServerAdmin
命令を、Webマスターが電子メールで受信できる電子メールに変更する必要があります。
ServerAdmin [email protected]
この後、2つの命令を追加する必要があります。最初のコマンドの名前は ServerName
で、この仮想ホスト定義に一致する基本ドメインを確立します。これはおそらくあなたのドメイン名です。 2つ目は ServerAlias
という名前で、ベース名であるかのように照合する必要がある他の名前を定義します。これは、たとえば「www」のように、定義したホストを照合する場合に役立ちます。
ServerName example.com
ServerAlias www.example.com
基本的な仮想ホストファイルに対して変更する必要がある他の唯一のことは、そのドメインのドキュメントルートの場所です。必要なディレクトリを作成したので、作成したディレクトリを反映するように DocumentRoot
ディレクティブを変更するだけで済みます。
DocumentRoot /var/www/example.com/public_html
一般に、virtualhostファイルは次のようになります。
< 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番目の仮想ホストファイルを作成できます。
最初にそれをコピーします:
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>
完了したら、ファイルを保存して閉じます。
仮想ホストファイルを作成したので、それらを有効にする必要があります。 Apacheには、これを可能にするいくつかのツールが含まれています。
a2ensite
ツールを使用して、次のように各Webサイトを有効にすることができます。
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
次に、 000-default.conf
で定義されたデフォルトサイトを無効にします。
sudo a2dissite 000-default.conf
完了したら、次の変更を有効にするためにApacheを再起動する必要があります。
sudo systemctl restart apache2
他のドキュメントでは、次の service
コマンドを使用して例を確認することもできます。
sudo service apache2 restart
このコマンドは引き続き機能しますが、systemdのラッパーの systemctl
になっているため、以前に他のシステムで見た出力が得られない場合があります。
このプロセスをテストするために所有している実際のドメイン名を使用しておらず、いくつかのサンプルドメインを使用している場合は、ローカルコンピューターの hosts
ファイルを一時的に変更することで、少なくともこのプロセスの機能をテストできます。
これにより、登録済みドメインを使用する場合のDNSシステムと同様に、構成済みドメインに対するすべての要求がインターセプトされ、VPSサーバーにポイントされます。これはお使いのコンピューターでのみ実行でき、テストのみを目的としています。
これらの手順は、VPSサーバーではなく、ローカルコンピューターで実行してください。コンピュータの管理パスワードを知っているか、他の方法で管理グループのメンバーになる必要があります。
MacまたはLinuxコンピューターを使用している場合は、次のコマンドを入力して、管理者権限を持つローカルファイルを編集します。
sudo nano /etc/hosts
Windowsコンピュータを使用している場合は、[ホストファイルの変更手順を見つける](http://support.microsoft.com/kb/923947)[in](http://support.microsoft.com/kb/923947)はここにあります。
追加する必要のある詳細は、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」に送信されます。仮想ホストをテストするために実際にこれらのドメインの所有者でない場合は、これが必要です。
ファイルを保存して閉じます。
仮想ホストを構成したので、Webブラウザーで構成されたドメインに移動して、設定を簡単にテストできます。
http://example.com
次のようなページが表示されます。
同様に、2番目のページにアクセスできる場合:
http://test.com
2番目のサイト用に作成されたファイルが表示されます。
両方のサイトが正常に実行されている場合は、同じサーバー上に** 2つの**仮想ホストが正常に構成されています。
自宅のコンピューターのホストファイルを調整した場合は、構成が有効であることを確認するために、現在追加されている行を削除する必要がある場合があります。これにより、hostsファイルが実際には不要なエントリを入力できなくなります。
長期アクセスが必要な場合は、必要なサイトごとにドメイン名を購入し、VPSサーバーを指すように設定することを検討してください。
続行すると、1つのサーバーで2つの別々のドメイン名を処理できるようになります。上記の手順に従って他の仮想ホストを作成することにより、このプロセスを拡張できます。
Apacheが処理できるドメイン名の数にソフトウェアの制限はないため、サーバーが処理できるドメイン名の数を自由に使用できます。
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu16.04でApache仮想ホストを設定する方法」
Recommended Posts