Ubuntu 22.04でApacheのバーチャルホストを構成する方法
Ubuntu 22.04でApacheのバーチャルホストを構成する方法
このページで
- 何をカバーしますか?
- 今すぐ始めましょう...
- Apacheのvhost設定をテストする
- 結論
仮想ホスティングの概念は、企業が単一の機械を使用して複数のウェブサイトをホストするために使用されます。これは、「IPベース」方式または「名前ベース」アプローチのいずれかによって達成できます。「IPベース」のホスティングでは、各ウェブサイトに対して異なるIPアドレスがあります。「名前ベース」のホスティングの場合、各IPアドレスで複数の名前が運用されています。
何をカバーしますか?
このチュートリアルでは、名前ベースの仮想ホスティングを使用して、Ubuntu 22.04システム上で2つの仮想ホストをホストする方法を見ていきます。Apacheウェブサーバーを使用します。
今すぐ始めましょう...
ステップ1. リポジトリとオペレーティングシステムを更新します:
sudo apt updatesudo apt upgrade -yステップ2。コマンドを使用してUbuntuにApacheウェブサーバーをインストールします。
sudo apt install apache2 -ysudo systemctl restart apache2sudo systemctl status apache2
サンプル出力:
? 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としましょう。
再び、これらのディレクトリの中に、ウェブファイルを保管するためのもう一つのフォルダーを作成してください。これらのディレクトリを public_html と public_html とします。これらのディレクトリには、これらの2つのホスト用の対応する index.html ファイルが含まれます。
sudo mkdir -p /var/www/host1/public_htmlsudo mkdir -p /var/www/host2/public_htmlディレクトリ「/var/www/host1/public_html」と「/var/www/host2/public_html」は、二つのバーチャルホストのドキュメントルートを表しています。
ステップ5. 上記で作成されたディレクトリはrootユーザーが所有しています。通常のユーザーにこれらのディレクトリ内のファイルを変更させるために、所有権を次のコマンドを使用して変更する必要があります:
sudo chown -R $USER:$USER /var/www/host1/public_htmlsudo chown -R $USER:$USER /var/www/host2/public_html‘$USER’変数は、現在ログインしているユーザーの値を使用します。‘public_html’は今後、このユーザーの所有物となります。
ステップ6. 次に、Apacheの一般ウェブディレクトリに対して「読み取りアクセス」権限を設定します。
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. 更に進む前に、中間ステップを使用しています。ここでは、ローカルホストアドレスを2つの仮想ホストのドメイン名である www.host1.com と www.host2.com にマップするために hosts ファイルを変更します。これは、私たちのドメイン名を公開登録するのを避けるために行います。
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"上記の手順は下の画像に示されています。
「000-default.conf」は各仮想ホストのベースファイルとして使用できます。このファイルを同じ場所に2つの異なる名前でコピーするだけです:host1.conf と host2.conf:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/host1.confsudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/host2.confステップ10。今、ファイルを開いて各仮想ホストのために修正します。例えば、仮想ホスト1の場合、次のパラメータを修正すべきです。
<VirtualHost *:80>
ServerAdmin [email
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
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.confsudo a2ensite host2.confステップ11。ターミナルに新しい設定を有効にするためにApacheを再読み込みするようにとのメッセージが表示されますが、その前に「000-default.conf」で表されるデフォルトサイトを無効にするために次のコマンドを使用します:
sudo a2dissite 000-default.confステップ12。構成ファイルに構文エラーがないか確認します:
sudo apache2ctl configtestステップ13。最後に、上記の変更を適用するためにapache2サービスを再読み込みします:
sudo systemctl reload apache2
Apacheのvhost設定をテストする
これからすべてが正しく設定されているか確認します。あなたのマシンでターミナルを開いて、以下のコマンドを実行してください:
curl www.host1.com上記のコマンドは、仮想ホスト1のインデックスページからのメッセージを返すべきであり、同様に、下記のコマンドは仮想ホスト2からのメッセージを表示するべきです:
curl www.host2.com結論
ついに出ることができました。私たちの仮想ホスティングは期待通りに動作しています。このチュートリアルをTerraformを使っても実行できますので、試してみてください。




