トラフィックを管理するためのUbuntuにApacheをインストールする方法

高負荷のニーズに対応するオープンソースのWebサーバーをお探しですか?UbuntuApacheをインストールして完璧な解決策にしましょう!

Apacheは最も広く使用されているWebサーバーであり、大量のトラフィックを簡単に処理できます。このチュートリアルでは、Ubuntu LinuxサーバーにApacheをインストールし、仮想ホストを設定する方法を学びます。

今日Apacheを試して、Webサーバーのダウンタイムを解消しましょう!

前提条件

このチュートリアルは実践的なデモンストレーションです。一緒に進める場合は、以下の準備が必要です。

  • Ubuntuサーバー – このチュートリアルではUbuntu 20.04を使用します。
  • A user account with root privileges.

UbuntuサーバーにApacheをインストールする方法

Apacheには多くの強力な機能があります。ダイナミックにロード可能なモジュール、多機能な構成システム、広範なログ機能などが利用できます。これらの機能を活用するために、まずApacheをサーバーにインストールしましょう。

デフォルトでは、ApacheパッケージはUbuntuリポジトリで利用可能であり、aptパッケージマネージャーを使用して1つのコマンドを実行することでApacheをインストールできます。

1. サーバーが最新の状態であり、セキュリティパッチが適用されていることを確認するため、以下のapt updateコマンドを実行してください。

sudo apt update -y
Updating Server Package Index

2. システム上で利用可能なすべてのApacheパッケージを検索し、一覧表示するには、以下のapt-cacheコマンドを実行します。

sudo apt-cache search apache2

以下のスクリーンショットでは、利用可能なすべてのApacheパッケージと、最も一般的なパッケージが表示されています:

  • apache2 – Apache HTTP Server – このパッケージは標準のApacheウェブサーバーです。
  • libapache2-mod-php – このパッケージはApacheウェブサーバーに対するPHPサポートを提供します。
  • apache2-ssl-dev – このパッケージはApacheでSSL/TLS接続をサポートします。
  • apache2-utils – このパッケージは、Apacheウェブサーバー用のさまざまなユーティリティを提供します。たとえば、基本認証のユーザーを作成するhtpasswdなどです。
Listing Apache Packages

3. サーバーにApacheをインストールするには、次のapt installコマンドを実行します。

sudo apt install -y apache2
Installing Apache

4. パッケージがインストールされたら、以下のsystemctlコマンドを実行してApache(apache2)をstartしてください。このコマンドには出力がありませんが、次の手順でApacheサービスの状態を確認します。

sudo systemctl start apache2

5. 今度は、以下のコマンドを実行してApacheをブート時にenableに設定してください。UbuntuのデフォルトのインストールではApacheサービスは自動的に起動しないためです。

sudo systemctl enable apache2
Enabling Apache Auto-Start on Boot Up

6. 次に、以下のsystemctlコマンドを実行してApache(apache2)サービスのstatusを確認します。

sudo systemctl status apache2

以下の出力が表示されます。アクティブ(実行中)の状態は、Apacheサービスが正常に起動して実行されていることを示しています。

Check the status of the Apache service.

7. 以下のコマンドを実行してサーバーにインストールされているApacheのバージョンを確認します。

apache2 -version

この執筆時点では、最新の安定版Apacheバージョンは2.4.41ですが、あなたのものは異なるかもしれません。

Checking Installed Apache Version

8. 最後に、お好きなウェブブラウザを開いて、UbuntuサーバーのIPアドレスまたはホスト名に移動します(つまり、192.168.1.100)。

以下に、インストールプロセス中に作成されたデフォルトのApacheウェブページが表示されます。このページは、Apacheが正常にインストールされ、期待どおりに動作していることを確認します。

何らかの理由でエラーが発生した場合は、次のセクションに進み、ファイアウォールを構成してください。

Verifying Apache Installation by Accessing Apache’s Default Page

前のセクションでは、ApacheサーバーからWebページをリクエストし、デフォルトのApacheウェブページが表示されました。しかし、以下に示すように、「接続が拒否されました」というエラーが発生した場合はどうでしょうか?このエラーは、ファイアウォールがApacheサーバーへのアクセスをブロックしていることが原因となります。

Getting Connection Refused Error

この接続エラーを解決するために、ファイアウォールの設定を変更してApacheサーバーへのアクセスを許可します。また、デフォルトのUbuntuインストールには、サーバーへの不正なアクセスから保護するためのファイアウォールであるUFWが含まれています。

1. 以下のコマンドを実行して、UFWに含まれるすべてのアプリケーションプロファイルをリストします。

sudo ufw app list

以下にUFWで利用可能な異なるアプリケーションが表示されます:

  • Apache Full – このプロファイルは、Apacheウェブサーバーが必要とするポートの全範囲(ポート80および443)へのアクセスを許可します。
  • Apache – ポート80へのアクセスを許可するデフォルトのプロファイルです。

これはセキュリティが低いため、本番環境ではこのプロファイルを使用しないでください。

  • Apache Secure – このプロファイルは、TLS/SSLで暗号化されたトラフィック(ポート443)へのアクセスを制限するため、より安全です。
  • OpenSSH – このプロファイルは、SSH接続を許可するためのSSHポート(ポート22)へのアクセスを許可します。
Listing Application Profiles Available in UFW

2. 次に、以下のコマンドを実行して、Apache FullプロファイルとSSHを有効にします(allow)。

これらのコマンドは、開発環境で役立つすべてのポートへのアクセスを許可します。

sudo ufw allow 'Apache Full'
sudo ufw allow 'OpenSSH'
Enabling the Apache Full Profile along with SSH

おそらく、アプリケーションを無効にしたい場合は、許可オプションを無効オプションに変更することが好ましいです。次のようにします:sudo ufw disable ‘app_profile’

3. 下記のufw statusコマンドを実行して、UFWファイアウォールのステータスを確認します。

sudo ufw status verbose

以下に、Apache FullとOpenSSHがどこからでもアクセス可能であることを示すファイアウォールルールがあります。

Checking UFW Firewall Status

4. 最後に、ウェブブラウザを開いて、Apacheサーバーからウェブページをリクエストしてみてください。この時点で、インストールプロセス中に作成されたデフォルトのApacheウェブページが表示されます。

Verifying Apache Installation by Accessing Apache’s Default Page

ウェブサイトを提供するための仮想ホストの設定

Apacheサーバーが起動しているので、最もエキサイティングな部分、つまりウェブアプリケーションをホストする準備が整いました。どのようにして? Ubuntuサーバー上で仮想ホストを設定します。 仮想ホストは、1つのIPアドレスで複数のウェブサイトをホストできるようにする構成ファイルです。

このチュートリアルのこの地点からファイルとディレクトリを作成するには、sudoアクセスが必要です。

仮想ホストの設定を開始するには:

1. 以下のコマンドを実行して、/var/www/example.comという新しいディレクトリを作成します。このディレクトリをウェブサイトのコンテンツを格納するために使用します。実際のドメイン名でexample.comを置き換えてください。

このコマンドには出力がありませんが、次のコマンドを実行してディレクトリを確認できます: ls /var/www

sudo mkdir -p /var/www/example.com

2. 次に、以下のchownコマンドを実行して、/var/www/example.comディレクトリの所有権をユーザーアカウントに変更します。このコマンドには出力がありませんが、ウェブサイトのコンテンツを管理することができます。

sudo chown -R $USER:$USER /var/www/example.com

3. 次に、/var/www/example.comディレクトリのアクセス許可を755に変更するために、以下のchmodコマンドを実行します。このコマンドには出力がありませんが、ユーザーアカウントにウェブサイトのコンテンツへの読み取りと書き込みアクセスが付与されます。

sudo chmod -R 755 /var/www/example.com

4. 今、お好みのエディタで/var/www/example.comディレクトリにindex.htmlという名前のファイルを作成します。ファイルに以下のコードを記入し、変更を保存してファイルを閉じます。index.htmlファイルは、ウェブサイトのデフォルトページとして機能します。

以下のコードは、テキスト「Hello World! Your virtual host is working!」を表示するシンプルなウェブページを作成します。

<html>
  <head>
    <title>Welcome to example.com!</title>
  </head>

  <body>
    <h1>Hello World! Your virtual host is working!</h1>
  </body>
</html>

5. /etc/apache2/sites-availableディレクトリにexample.com.confという名前の新しいバーチャルホスト構成ファイルを作成します。

新しい仮想ホストを含めるためにデフォルトの/etc/apache2/sites-available/000-default.confファイルを編集できます。ただし、ウェブサイト用に新しいファイルを作成する方が良いアイデアです。この方法では、設定ファイルを整理するのに役立ちます。

以下の構成をexample.com.confファイルにコピー&ペーストしてください。ただし、example.comとwebmaster@localhostをウェブサイトの実際の値で置き換えてください。

変更を保存してファイルを閉じてください。

<VirtualHost *:80>

  ServerAdmin webmaster@localhost

  ServerName example.com

  ServerAlias www.example.com

  DocumentRoot /var/www/example.com

  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

6. 以下の各コマンドを実行して、デフォルトの仮想ホストファイルを無効にし、新しい仮想ホストファイルを有効にします。

デフォルトの仮想ホストファイルはデフォルトで有効になっており、デフォルトの仮想ホストファイルを無効にしない限り、新しい仮想ホストファイルを使用できません。

# デフォルトの仮想ホストファイルを無効にする
sudo a2dissite 000-default
# あなたの仮想ホストファイルを有効にする
sudo a2ensite example.com.conf
Disabling the Default Virtual Host File and Enabling your New Virtual Host

7. 下記のserviceコマンドを実行して、変更を適用するためにApacheサーバー(apache2)をrestartしてください。

sudo service apache2 restart

8. 最後に、ウェブブラウザを開き、ウェブサイト(example.com)に移動してください。

Apacheサーバーの設定が正しい場合、ウェブブラウザに以下のメッセージが表示されます。

Accessing the Hosted Website

Conclusion

このチュートリアルでは、UbuntuにApacheをインストールし、仮想ホストを設定して、1つのサーバーでウェブサイトを提供する方法を学びました。この段階では、Ubuntuサーバーで複数のウェブサイトを効果的にホストできるようになりました。

このチュートリアルは入門書として機能し、Apacheをさらに進めて他の機能を構成することを検討するかもしれません。たとえば、SSLで仮想ホストを設定し、パスワード保護してApacheサーバーをセキュリティで保護することを試してみるか、カスタムヘッダーを追加してユーザーのリクエストを制御してみてください。

Source:
https://adamtheautomator.com/install-apache-on-ubuntu/