はじめに
Apache HTTPサーバーは世界で最も広く利用されているWebサーバーです。ダイナミックにロード可能なモジュール、堅牢なメディアサポート、および他の人気ソフトウェアとの幅広い統合など、多くの強力な機能を提供しています。
このガイドでは、Ubuntu 22.04サーバーにApache Webサーバーをインストールする方法を学びます。
DigitalOcean App Platformを使用してGitHubからアプリケーションを展開します。DigitalOceanにアプリのスケーリングを任せましょう。
前提条件
このガイドを開始する前に、sudo特権を持つ非rootユーザーが設定されたUbuntu 22.04サーバーと、非必須ポートをブロックするファイアウォールが有効に設定されている必要があります。これについては、当社のUbuntu 22.04用の初期サーバー設定ガイドに従って学ぶことができます。
これらの設定が完了したら、非rootユーザーとしてログインし、最初のステップに進んでください。
ステップ1 — Apacheのインストール
Apacheは、Ubuntuのデフォルトのソフトウェアリポジトリ内に存在しており、従来のパッケージ管理ツールを使用してインストールすることが可能です。
まず、ローカルのパッケージインデックスを最新のアップストリームの変更に反映させるために、以下のコマンドを実行します:
次に、apache2
パッケージをインストールします:
インストールを確認した後、apt
はApacheとすべての必要な依存関係をインストールします。
ステップ2 — ファイアウォールの調整
Apacheをテストする前に、デフォルトのWebポートへの外部アクセスを許可するようにファイアウォールの設定を変更する必要があります。事前準備の手順に従っていれば、サーバーへのアクセスを制限するためにUFWファイアウォールが設定されているはずです。
インストール中、Apacheは自身をUFWに登録し、ファイアウォールを介してApacheへのアクセスを有効または無効にするために使用できるいくつかのアプリケーションプロファイルを提供します。
以下のコマンドを実行して、ufw
アプリケーションプロファイルのリストを表示します:
出力はアプリケーションプロファイルのリストになります:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
出力に示されているように、Apache用に利用可能な3つのプロファイルがあります。
Apache
:このプロファイルはポート80
(通常、暗号化されていないウェブトラフィック)のみを開きます。Apache Full
:このプロファイルはポート80
(通常、暗号化されていないウェブトラフィック)とポート443
(TLS/SSLで暗号化されたトラフィック)の両方を開きます。Apache Secure
:このプロファイルはポート443
(TLS/SSLで暗号化されたトラフィック)のみを開きます。
構成したトラフィックを許可する最も制限の厳しいプロファイルを有効にすることを推奨します。このガイドではまだサーバーにSSLを構成していないため、ポート80
でのトラフィックのみを許可する必要があります:
変更を確認するには、状態を確認します:
出力には許可されたHTTPトラフィックのリストが表示されます:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
出力によれば、プロファイルが有効になり、Apache Webサーバーへのアクセスが許可されました。
ステップ3 — Webサーバーの確認
インストールプロセスの最後に、Ubuntu 22.04はApacheを起動します。Webサーバーはすでに起動しています。
systemd
イニシャルシステムのコマンドを実行して、サービスがアクティブであることを確認します:
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 5089 (apache2)
Tasks: 55 (limit: 1119)
Memory: 4.8M
CPU: 33ms
CGroup: /system.slice/apache2.service
├─5089 /usr/sbin/apache2 -k start
├─5091 /usr/sbin/apache2 -k start
└─5092 /usr/sbin/apache2 -k start
この出力により、サービスが正常に開始されましたが、これをテストする最良の方法は、Apacheからページをリクエストすることです。
デフォルトのApacheランディングページにアクセスして、ソフトウェアが正常に動作していることを確認できます。サーバーのIPアドレスがわからない場合は、いくつかの方法でコマンドラインから取得できます。
サーバーのコマンドプロンプトに次のように入力してみてください:
いくつかのアドレスがスペースで区切られて表示されます。それぞれをウェブブラウザで試して、動作するかどうかを確認できます。
別のオプションは、無料のicanhazip.com
ツールを使用することです。これは、アクセスすると、インターネット上の別の場所から読み取られたマシンの公開IPアドレスを返すウェブサイトです:
サーバーのIPアドレスを取得したら、ブラウザのアドレスバーに入力してください:
http://your_server_ip
以下のように、デフォルトのUbuntu 22.04 Apacheウェブページが表示されます:
このページは、Apacheが正常に動作していることを示しています。重要なApacheファイルとディレクトリの場所に関する基本的な情報も含まれています。
ステップ4 — Apacheプロセスの管理
ウェブサーバーが稼働しているので、systemctl
を使用した基本的な管理コマンドを見てみましょう。
ウェブサーバーを停止するには、次のコマンドを実行します:
停止したウェブサーバーを再開するには、次のコマンドを実行します:
サービスを停止してから再開するには、次のコマンドを実行します:
単に構成変更を行っている場合、Apache は接続を切断せずにリロードできることがよくあります。これを行うには、次のコマンドを使用します:
デフォルトでは、Apache はサーバーの起動時に自動的に開始されるように構成されています。これが望ましくない場合は、次のコマンドを実行してこの動作を無効にします:
再び起動時にサービスを有効にするには、次のコマンドを実行します:
Apache は次回サーバーが起動するときに自動的に開始されます。
ステップ 5 — 仮想ホストの設定(推奨)
Apache ウェブサーバーを使用する際には、1 台のサーバーから複数のドメインをホストし、構成の詳細をカプセル化するために、仮想ホスト(Nginx のサーバーブロックに類似)を使用できます。ここでは your_domain というドメインを設定しますが、これは独自のドメイン名に置き換えてください。
情報: DigitalOcean でドメイン名を設定する場合は、Networking Documentation を参照してください。
Apache on Ubuntu 22.04には、デフォルトで1つのサーバーブロックが有効になっており、/var/www/html
ディレクトリからドキュメントを提供するように構成されています。これは単一のサイトではうまく機能しますが、複数のサイトをホストする場合は扱いづらくなる可能性があります。 / var / www 内に/var/www/html
をそのままにします。
your_domain のディレクトリを次のように作成します:
次に、次のコマンドを使用して、ディレクトリの所有権を現在ログインしているユーザーに割り当てます:
umask値を変更していない場合、Webルートのアクセス許可が正しいはずです。所有者にファイルを読み取り、書き込み、実行する権限を許可し、グループとその他には読み取りと実行の権限のみを付与するには、次のコマンドを入力します:
次に、nano
またはお気に入りのエディタを使用してサンプル index.html
ページを作成します:
内部には、次のサンプルHTMLを追加します:
終了したら、ファイルを保存して閉じます。 nano
を使用している場合は、 CTRL + X
、 Y
、 ENTER
を押して保存できます。
Apacheがこのコンテンツを提供するためには、正しいディレクティブを含む仮想ホストファイルを作成する必要があります。デフォルトの構成ファイル(/etc/apache2/sites-available/000-default.conf
)を直接変更する代わりに、新しいファイルを/etc/apache2/sites-available/your_domain.conf
に作成してください。
以下の構成ブロックを追加します。これはデフォルトに似ていますが、新しいディレクトリとドメイン名に更新されています:
DocumentRoot
を新しいディレクトリに、ServerAdmin
をyour_domainサイト管理者がアクセスできるメールアドレスに更新しました。また、2つのディレクティブを追加しました:ServerName
は、この仮想ホスト定義に一致する基本ドメインを確立し、ServerAlias
は、基本名であるかのようにさらに名前を定義します。
編集が完了したら、ファイルを保存して閉じてください。
次に、a2ensite
ツールを使用してファイルを有効にします:
000-default.conf
で定義されたデフォルトサイトを無効にします:
次に、構成エラーをテストします:
次の出力が表示されます:
Output. . .
Syntax OK
変更を実装するためにApacheを再起動します:
これでApacheはあなたのドメイン名を提供するようになりました。これを確認するには、http://your_domain
に移動してください。そこでは次のようなものが表示されます:
ステップ6 – 重要なApacheファイルとディレクトリに慣れる
Apacheサービス自体の管理方法を知っているので、重要なディレクトリとファイルをいくつか把握するために数分を割いてください。
内容
/var/www/html
:実際のウェブコンテンツは、デフォルトで/var/www/html
ディレクトリから提供されます。これは、前述のデフォルトのApacheページのみで構成されます。これはApache構成ファイルを変更することで変更できます。
サーバーの構成
/etc/apache2
:Apacheの構成ディレクトリ。すべてのApache構成ファイルがここにあります。/etc/apache2/apache2.conf
:メインのApache構成ファイル。これを変更すると、Apacheのグローバル構成が変更されます。このファイルは、構成ディレクトリの他の多くのファイルを読み込む責任があります。/etc/apache2/ports.conf
:このファイルは、Apacheがリッスンするポートを指定します。デフォルトでは、Apacheはポート80
でリッスンし、SSL機能を提供するモジュールが有効になっている場合にはポート443
でもリッスンします。/etc/apache2/sites-available/
:サイトごとの仮想ホストを保存できるディレクトリです。Apacheは、このディレクトリに見つかった構成ファイルをsites-enabled
ディレクトリにリンクされていない限り使用しません。通常、すべてのサーバーブロックの構成はこのディレクトリで行われ、a2ensite
コマンドで他のディレクトリにリンクされて有効になります。/etc/apache2/sites-enabled/
:有効になっているサイトごとの仮想ホストが保存されるディレクトリです。通常、これらはsites-available
ディレクトリにある構成ファイルにリンクされて作成されます。a2ensite
を使用します。Apacheは、起動時または再読み込み時にこのディレクトリ内の構成ファイルとリンクを読み取って完全な構成をコンパイルします。/etc/apache2/conf-available/
、/etc/apache2/conf-enabled/
:これらのディレクトリはsites-available
とsites-enabled
ディレクトリと同じ関係を持ちますが、仮想ホストに属さない構成フラグメントを保存するために使用されます。conf-available
ディレクトリ内のファイルは、a2enconf
コマンドで有効にでき、a2disconf
コマンドで無効にできます。/etc/apache2/mods-available/
、/etc/apache2/mods-enabled/
:これらのディレクトリには、それぞれ利用可能なモジュールと有効になっているモジュールが含まれています。拡張子が.load
で終わるファイルには特定のモジュールをロードするためのフラグメントが含まれており、.conf
で終わるファイルにはそれらのモジュールの構成が含まれています。モジュールはa2enmod
およびa2dismod
コマンドを使用して有効または無効にできます。
サーバーログ
/var/log/apache2/access.log
:デフォルトでは、Apacheが別のように構成されていない限り、ウェブサーバーへのすべてのリクエストがこのログファイルに記録されます。/var/log/apache2/error.log
:デフォルトでは、すべてのエラーがこのファイルに記録されます。Apacheの構成でLogLevel
ディレクティブがエラーログに含まれる詳細の程度を指定します。
結論
ウェブサーバーがインストールされたので、提供できるコンテンツの種類や、より豊かなエクスペリエンスを作成するために使用できる技術には多くのオプションがあります。
より完全なアプリケーションスタックを構築したい場合は、Ubuntu 22.04でLAMPスタックを構成する方法に関するこの記事を読んでください。