Ubuntu16.04でApache仮想ホストを設定する方法

前書き ##

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/)にアクセスすることをお勧めします。

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

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

私たちが取りたい最初のステップは、訪問者に提供するサイトデータを保持するディレクトリ構造を作成することです。

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から提供するドメイン名を表しています。

ステップ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

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

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

sudo chmod -R 755/var/www

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

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

ディレクトリ構造があります。いくつかのサービスコンテンツを作成しましょう。

デモを行っているので、ページはとてもシンプルになります。 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>

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

ステップ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>

ご覧のとおり、ここにはあまりコンテンツがありません。ここで最初のドメインのプロジェクトをカスタマイズし、他のいくつかの手順を追加します。この仮想ホスト部分は、ポート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番目のドメインをカスタマイズします

最初の仮想ホストファイルを作成したので、ファイルをコピーして必要に応じて調整することにより、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ツールを使用して、次のように各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になっているため、以前に他のシステムで見た出力が得られない場合があります。

手順6-ローカルホストファイルを設定する(オプション)

このプロセスをテストするために所有している実際のドメイン名を使用しておらず、いくつかのサンプルドメインを使用している場合は、ローカルコンピューターの 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」に送信されます。仮想ホストをテストするために実際にこれらのドメインの所有者でない場合は、これが必要です。

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

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

仮想ホストを構成したので、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

Ubuntu16.04でApache仮想ホストを設定する方法
Ubuntu20.04でApache仮想ホストを設定する方法
CentOS7でApache仮想ホストを設定する方法
Ubuntu14.04でGogsを設定する方法
Ubuntu14.04でRを設定する方法
Ubuntu14.04でShinyServerをセットアップする方法
Ubuntu18.04で時刻同期を設定する方法
Ubuntu18.04でDNSサーバーを設定する方法
Ubuntu20.04にApacheをインストールする方法
UbuntuとRaspbianでJavaホームを設定する方法
Ubuntu14.04でMasterlessPuppet環境をセットアップする方法
Ubuntu14.04でUFWを使用してファイアウォールを設定する方法
Ubuntu16.04で匿名ダウンロード用にvsftpdを設定する方法
Ubuntu14.04で本番Elasticsearchクラスターをセットアップする方法
Ubuntu14.04でNginxを使用してパスワード認証を設定する方法
Ubuntu16.04でユーザーディレクトリ用にvsftpdを設定する方法
Ubuntu16.04でPostgreSQLの起動を設定する方法
Ubuntu20.04にApacheMavenをインストールする方法
Ubuntu16.04にApacheTomcat8をインストールする方法
Ubuntu18.04サーバーで静的IPを設定する方法
Ubuntu18.04サーバーで静的IPを設定する方法
CentOS8でSSHキーを設定する方法
ubuntu14.04で静的IPを設定する方法を詳しく説明します
Ubuntu14.04でApacheコンテンツキャッシングを構成する方法
Ubuntu16.04でLet&#39;sEncryptを使用してApacheを保護する方法
Ubuntu16.04およびApache仮想ホストを構成するための詳細な手順
Ubuntu16.04に基づいて固定IPを設定する方法
UbuntuスタートアップでTmuxサービススクリプトを実行する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu20.04でタイムゾーンを設定または変更する方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu14.04にDjangoをデプロイする方法
Ubuntu20.04にRをインストールする方法
Ubuntu20.04でタイムゾーンを設定または変更する方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法