もっと詳しく

仮想ホスティングの概念は、単一のマシンを使用して複数のWebサイトをホストするために企業によって使用されます。 これは、「IPベース」の方法または「名前ベース」のアプローチのいずれかによって実現できます。 「IPベース」のホスティングでは、Webサイトごとに異なるIPアドレスがあります。 「名前ベース」のホスティングの場合、各IPアドレスで複数の名前が実行されています。

何をカバーしますか?

このチュートリアルでは、名前ベースの仮想ホスティングを使用して、Ubuntu22.04システムで2つの仮想ホストをホストする方法を説明します。 ApacheWebサーバーを使用します。

今すぐ始めましょう…

手順1.リポジトリとオペレーティングシステムも更新します。

sudo apt update
sudo apt upgrade -y

手順2.次のコマンドを使用してUbuntu用のApacheWebサーバーをインストールします。

sudo apt install apache2 -y

手順3.ApacheWebサーバーを再起動し、次のコマンドを実行してステータスを確認します。

sudo systemctl restart apache2
sudo systemctl status apache2

Apacheサービスを再起動します

サンプル出力:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Mon 2022-06-27 09:32:14 UTC; 18s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 13093 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/S>
   Main PID: 13098 (apache2)
      Tasks: 55 (limit: 1146)
     Memory: 4.7M
        CPU: 25ms
     CGroup: /system.slice/apache2.service
             ??13098 /usr/sbin/apache2 -k start
             ??13099 /usr/sbin/apache2 -k start
             ??13100 /usr/sbin/apache2 -k start

手順4.「www」フォルダ内に2つの新しいディレクトリを作成します。 これらのディレクトリをhost1とhost2とします。

繰り返しますが、これらのディレクトリ内に、Webファイルを保持するためのフォルダをもう1つ作成します。 これらのディレクトリをpublic_htmlおよびpublic_htmlとします。 これらのディレクトリには、これら2つのホストに対応するindex.htmlファイルが含まれます。

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

ディレクトリ「/var/ www / host1/public_html」および「/var/ www / host2 / public_html」も、2つの仮想ホストのドキュメントルートを表します。

手順5.上記で作成したディレクトリはrootユーザーが所有しています。 通常のユーザーがこれらのディレクトリ内のファイルを変更できるようにするには、次のコマンドを使用して所有権を変更する必要があります。

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

‘$ USER’変数は、現在ログインしているユーザーの値を使用します。 ‘public_html’は、このユーザーが所有するようになります。

ステップ6.ここで、apache一般Webディレクトリに「読み取りアクセス」権限を設定します。

sudo chmod -R 755 /var/www

ステップ7.次に、仮想ホストごとにデフォルトのページ、つまりindex.htmlを設定します。 これは、「echo」コマンドを使用して端末から直接実行できます。 仮想ホストの場合1:

sudo echo “Welcome to Virtual Host 1.” > /var/www/host1/public_html/index.html

仮想ホスト2の場合:

sudo echo “Welcome to Virtual Host 2.” > /var/www/host2/public_html/index.html

ステップ8.先に進む前に、中間ステップを使用しています。 ここでは、hostsファイルを変更して、ローカルホストアドレスを2つの仮想ホストドメイン名(www.host1.comとwww.host2.com)にマップします。 これは、ドメイン名を公に登録することを避けるために行われます。

sudo sh -c "echo 127.0.0.1 www.host1.com >> /etc/hosts"
sudo sh -c "echo 127.0.0.1 www.host2.com >> /etc/hosts"

上記の手順を下の図に示します。

仮想ホストの準備
ステップ9.次に、仮想ホストごとに2つの仮想ホストファイルを作成します。 これらは、apacheのデフォルト設定ファイル(「000-default.conf」)の2つに似ています。 これらのファイルは、仮想ホストに使用される構成を表し、ApacheWebサーバーがさまざまなドメイン要求に応答する方法も管理します。

「000-default.conf」は、各仮想ホストのベースファイルとして使用できます。 このファイルを、host1.confとhost2.confという2つの異なる名前で同じ場所にコピーするだけです。

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

ステップ10.ここでファイルを開き、仮想ホストごとにファイルを変更します。 たとえば、仮想ホスト1の場合、次のパラメータを次のように変更する必要があります。

<VirtualHost *:80>

    ServerAdmin [email protected]

    ServerName host1

    ServerAlias www.host1.com

    DocumentRoot /var/www/host1/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log

</VirtualHost>

2番目のファイル(host2.conf)については、host1エントリをhost2に置き換えます。 または、2つの新しいファイルを作成し、各仮想ホストに対応する上記のコンテンツを入力することもできます。 host2.confファイルは次のようになります。

<VirtualHost *:80>

    ServerAdmin [email protected]

    ServerName host2

    ServerAlias www.host2.com

    DocumentRoot /var/www/host2/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log

</VirtualHost>

ステップ10.仮想ホストファイルを作成したので、これらのファイルを実際に有効にします。 この目的のために、Apacheは「a2ensite」と呼ばれるツールを提供します。 以下のコマンドを使用して、それらを有効にします。

sudo a2ensite host1.conf
sudo a2ensite host2.conf

ステップ11.ターミナルに、apacheをリロードして新しい構成をアクティブ化するメッセージが表示されますが、その前に、次のコマンドを使用して「000-default.conf」で表されるデフォルトサイトを無効にします。広告

sudo a2dissite 000-default.conf

ステップ12.以下を使用して、構成ファイルに構文エラーがないか確認します。

sudo apache2ctl configtest

ステップ13.最後に、apache2サービスをリロードして、上記で行った変更を適用します。

sudo systemctl reload apache2

(1)Host1とHost2を有効にします(2)デフォルトサイトを無効にします(3)Apacheをリロードします

Apachevhostセットアップのテスト

ここで、すべてが正しくセットアップされているかどうかを確認します。 マシンでターミナルを開き、次のコマンドを実行します。

$ curl www.host1.com

上記のコマンドは、仮想ホスト1のインデックスページからメッセージを返す必要があります。同様に、以下のコマンドは、仮想ホスト2からのメッセージを表示する必要があります。

$ curl www.host2.com

セットアップのテスト

結論

ようやく完成しました。仮想ホスティングは期待どおりに機能しています。 Terraformを使用してこのチュートリアルを実行することもできます。試してみてください。

The post Ubuntu22.04でApache仮想ホストを構成する方法 appeared first on Gamingsym Japan.