はじめに
Apache HTTP Serverは、オープンソースのWebサーバーであり、開発元は Apache Software Foundationです。これは、ローカルサーバーをFirefoxやGoogle Chromeなどのウェブサイトサーバーに接続するソフトウェアです。この接続は、ファイルやデータの送受信に使用されます。
世界中で最も人気のあるサーバーです。ワールドワイドウェブ上の全ウェブサイトの40%以上がApache HTTPで動作しています。人気の理由は、高いカスタマイズ性、優れた統合能力、そして信頼性の高いメディアサポートにあります。Apacheはモジュールベースのアーキテクチャで動作します。個々のモジュールを修正して、さまざまな機能を追加または削除できます。このチュートリアルでは、Ubuntu 18.04にApacheサーバーをインストールする方法をご案内します。
インストール前の準備
Apacheのインストールを開始する前に、いくつかの前提条件を満たす必要があります。まず、ローカルサーバー上でsudo権限を持つ非ルートユーザーがすでに設定されていることを確認してください。もう1つ必要なのはファイアウォールです。基本的なファイアウォールを有効にし、不要なポートをブロックする必要があります。インストールを開始する前に、権限を持つ非ルートユーザーでログインしてください。弊社のUbuntuサーバー設定チュートリアルに従うことで、サーバーを簡単にインストールできます。.
Ubuntu 18.04にApache Webサーバーをインストールする方法
前提条件が整っていれば、実際のインストールに進むことができます。Apache Webサーバーは、次の6つの簡単なステップでインストールして試すことができます。
ステップ1:Apacheのインストール
ApacheはすでにUbuntuの一部として提供されています。つまり、一般的なパッケージ管理ツールを使用してサーバーにApacheをインストールできます。リポジトリのデフォルトソフトウェアとして利用可能です。まず、ローカルのパッケージインデックスを更新する必要があります。
|
1 |
sudo apt update |
このコマンドにより、最新の上流の変更がパッケージインデックスに反映されます。次に、apache2パッケージをインストールするコマンドを実行します。
|
1 |
sudo apt install apache2 |
ステップ2:ファイアウォール設定の変更
前提条件の準備の際に、UFWファイアウォールを設定しているはずです。指示に従っていれば、ファイアウォールによってサーバーへのアクセスがブロックされている状態になります。Apacheを動作させる前に、デフォルトのWebポートへのアクセスを許可する必要があります。そのため、ファイアウォールの設定を変更する必要があります。
インストール時に、ApacheはUFWに登録されます。この登録の結果、いくつかのアプリケーションプロファイルが作成されます。さらに、これらのプロファイルを使用して、Apacheへのファイアウォールアクセスを有効または無効にすることができます。次に、以下のコマンドでこれらのufwアプリケーションを確認します。
|
1 |
sudo ufw app list |
以下のようなリストでアプリケーションプロファイルが表示されます。

上記のリストは、Apache、Apache Full、およびApache Secureという3つのアプリケーションプロファイルが作成されたことを示しています。それぞれのプロファイルに関する有用な詳細は以下の通りです。
-
Apache:
Apacheプロファイルはポート80のみを開くことができます。このポートは、通常の暗号化されていないWebトラフィックを許可します。
-
Apache Full:
Apache Fullプロファイルは、ポート80と443の両方を開くことができます。ポート80は通常の暗号化されていないWebトラフィックを許可し、ポート443はTLS/SSLで暗号化されたトラフィックを処理します。
-
Apache Secure:
最後に、Apache Secureはポート443のみを開きます。上述の通り、TLSまたはSSLで暗号化されたWebトラフィックを通す役割を担います。
これらのプロファイルを選択する際は、設定したトラフィックについて考慮してください。最も制限の厳しいプロファイルを選択しつつ、目的のトラフィックが通過できるようにしたいところです。現時点ではSSLの設定は対象外です。そのため、今回はポート80を通過するトラフィックに焦点を当てます。つまり、このシナリオではアプリケーションプロファイル「Apache」を有効にします。以下のように実行できます。
|
1 |
sudo ufw allow ‘Apache’ |
変更を確認するには、以下を入力します。
|
1 |
sudo ufw status |
このコマンドを実行すると、現在通過が許可されているHTTPトラフィックを含む出力が表示されます。以下のように表示されます。

トラフィックフローは、目的のApacheプロファイルが有効化されたことを示しています。ファイアウォールを介してWebサーバーへのアクセスが許可されました。
ステップ 3: Webサーバーの確認
Apacheのインストールが完了し、ファイアウォールの設定が変更されました。このプロセスの最後に、Ubuntu 18.04は自動的にApacheを起動します。次に、サービスがいつでも実行されているかどうかをsystemd initシステムで確認する必要があります。initシステムについて詳しく知りたい場合は、当社のSystemctlを使用したSystemdサービスとユニットの管理方法に関するチュートリアルを参照してください。サービスが実行中かどうかを確認するには、次のように入力します。
|
1 |
sudo systemctl status apache2 |
出力は次のようになります。

上記でサービスの「Active」または「running」ステータスを確認する必要があります。これは、サービスが正常に起動し、実行されていることを示しています。サービスの動作をテストする、より好ましい別の方法があります。Apacheからページをリクエストすることで、そのステータスを確認できます。サーバーのIPアドレスを使用して、ソフトウェアがデフォルトのApacheランディングページで実行されているかどうかを確認できます。サーバーのIPアドレスがまだわからない場合に、それを取得するために使用できるプロンプトは次のとおりです。
|
1 |
hostname -I |
このコマンドを実行すると、スペースで区切られた複数のIPアドレスの結果が表示されます。ブラウザでそれぞれを個別にテストしてください。アクセスするもう1つの方法は、パブリックIPアドレスを取得することです。次のようなプロンプトを使用できます。
|
1 |
curl -4 icanhazip.com |
これにより、ウェブ上の他の場所から見たIPアドレスが表示されます。次に、IPアドレスを取得したら、Webブラウザを開きます。アドレスバーに以下を入力して実行します。
|
1 |
http://your_server_ip |
これにより、デフォルトのUbuntu 18.04 Apache Webページが開きます。次のようになります。

このページには、ファイルとディレクトリに関するいくつかの基本情報が含まれています。アドレスを入力すると起動したため、Apacheが正常に動作していることを示しています。
ステップ 4: Apacheの基本管理
検証により、Apacheが実行されており、サーバーが稼働していることが確認されました。次に、管理のためにサーバーで使用できるいくつかの基本的なコマンドについて説明します。
Apacheのデフォルト設定では、サーバーの起動時に常にApacheが起動します。この設定を無効にすることもできます。次のように入力します。
|
1 |
sudo systemctl disable apache2 |
このデフォルト機能を再有効化するには、次のコマンドを使用します。
|
1 |
sudo systemctl enable apache2 |
次に、サーバーを手動で停止したい場合は、以下を入力します。
|
1 |
sudo systemctl stop apache2 |
停止した後に再度起動したい場合は、次のコマンドを使用します。
|
1 |
sudo systemctl start apache2 |
サーバーを停止して起動する、つまり実質的にリフレッシュするには、次のように入力します。
|
1 |
sudo systemctl restart apache2 |
サーバーを停止すると、すべての接続が失われる傾向があります。再度起動するということは、それらの接続を再度見つけてリンクすることを意味します。必要に応じて、接続を失うことなくApacheをリロードすることもできます。これは、設定を変更する場合に特に便利です。接続を切断せずにリロードするには、以下を入力します。
|
1 |
sudo systemctl reload apache2 |
ステップ 5: バーチャルホストの設定
これは必須ではありませんが、バーチャルホストを設定することを強くお勧めします。バーチャルホストは、設定の詳細のグループを含むサーバー内の小さなブロックです。サーバー上の1つのバーチャルホストで複数のドメインをホストできます。
デフォルトでは、Ubuntu 18.04でApacheを使用している場合、/var/www/htmlディレクトリ内のドキュメントを処理する有効化されたサーバーブロックが1つ存在します。単一のサイトではなく複数のサイトをホストする場合は、この設定を変更する必要があります。ただし、さらに効果的な別のオプションがあります。/var/www/htmlディレクトリはそのままにしておきます。代わりに、/var/www/に移動して、目的のドメインのサイト用のディレクトリ構造を構築します。このようにすると、/var/www/htmlディレクトリはデフォルトのディレクトリとして構成されます。クライアントのリクエストがドメイン上のどのサイトにも一致しない場合、ここから提供されます。
その後、新しいドメインとそれに関連付けられたディレクトリを作成する方法を説明します。この例では、仮の名前として「your_domain」を使用します。以降の手順で「your_domain」が表示されている箇所は、すべてご自身のドメイン名に置き換えてください。まず、your_domain用の新しいディレクトリを作成する方法を見てみましょう。
|
1 |
sudo mkdir /var/www/your_domain |
次に、ディレクトリの所有権を割り当てる必要があります。これには$USER環境変数を使用できます。
|
1 |
sudo chown -R $USER:$USER /var/www/your_domain |
次に進むには、ウェブのルート権限が正しい必要があります。設定でumask値を変更していない場合は、権限に問題はないはずです。しかし、確信が持てない場合は、いつでも次のコマンドで確認できます。
|
1 |
sudo chmod -R 755 /var/www/your_domain |
次に、index.htmlページを作成します。お好みに応じて、私たちのようにnanoを使用することも、他のエディタを使用することもできます。
|
1 |
nano /var/www/your_domain/index.html |
このサンプルHTMLをindex内に追加し、保存して閉じます。
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>ようこそへ Your_domain!</title> </head> <body> <h1>成功! The your_domain バーチャルホストが動作して います!</h1> </body> </html> |
次のステップは、バーチャルホストファイルを作成することです。Apacheが上記のサンプルコンテンツを提供できるようにするには、すべての適切なディレクティブが含まれたバーチャルホストファイルが必要です。デフォルトの設定ファイルは /etc/apache2/sites-available/000-default.conf にあります。そのファイルを変更する代わりに、/etc/apache2/sites-available/your_domain.conf に新しいファイルを作成します。
|
1 |
sudo nano /etc/apache2/sites-available/your_domain.conf |
前と同様に、設定のサンプルを追加します。ただし、今回はドメイン名と作成したばかりの新しいディレクトリに合わせて更新します。このブロックを追加し、保存して閉じます。
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
上記のように、ServerAdminのメールアドレスも更新しました。これは、your_domainサイトの管理者に連絡できるアドレスです。それだけでなく、DocumentRootを新しいディレクトリに更新し、2つの新しいディレクティブを追加しました。これらのディレクティブには、ServerNameとServerAliasが含まれます。ServerNameは、ベースドメインを設定するために使用されます。バーチャルホストを定義するには、ベースドメインが一致する必要があります。一方、ServerAliasは、ベース名と同様に、一致する必要がある他の名前を提供します。a2ensiteツールを使用すると、ファイルを簡単に有効化できます。
|
1 |
sudo a2ensite your_domain.conf |
000-default.confで言及されているデフォルトのサイトを無効にするには、次のコマンドを使用します:
|
1 |
sudo a2dissite 000-default.conf |
設定の準備が整ったので、次のコマンドを入力してエラーをチェックできます:
|
1 |
sudo apache2ctl configtest |
設定エラーがない場合、次の出力が表示されます:
|
1 2 3 |
Output Syntax OK |
変更を適用するには、前述の指示通りにApacheサーバーを再起動する必要があります:
|
1 |
sudo systemctl restart apache2 |
これで完了です!バーチャルホストを設定し、ドメイン名を指定しました。Apacheが実際にyour_domainを提供しているか確認するには、http://your_domain にアクセスしてください。
ステップ 6: ファイルとディレクトリの探索
Apacheサーバーの基本的な設定が正常に完了しました。また、Apacheサービスの管理方法についても理解できたかと思います。次に、最も重要なディレクトリとファイルの一部を確認してみましょう。
コンテンツ
- /var/www/html
このディレクトリについては以前にも説明しました。ここにはデフォルトのApacheページが含まれています。必要に応じて、このページの内容を変更できます。そのためには、Apacheの設定ファイルを変更する必要があります。
サーバー設定
- /etc/apache2
これはApacheのメイン設定ディレクトリです。つまり、このディレクトリにはApacheに関連するすべての設定ファイルが含まれています。
- /etc/apache2/apache2.conf
ディレクトリの末尾に追加されているように、これがメインの設定ファイルです。このファイルはディレクトリ内の他のいくつかのファイルを読み込み、Apache設定の変更を行うために使用できます。Apacheサーバーの設定を変更したい場合は、ここで変更を行います。
- /etc/apache2/ports.conf
名前が示すように、このファイルは以前に説明したポートに関連しています。デフォルトでポート80が有効になっており、SSLを含むモジュールが導入されるとポート443が有効になります。このファイルには、どのポートが開いており、有効になっているかに関する詳細が含まれています。
- /etc/apache2/sites-available/
ここにバーチャルホストが配置されます。実行するすべてのサーバーブロック設定はこのディレクトリで行われます。サーバーブロックを有効にするには、a2ensiteを介して他のディレクトリにリンクする必要があります。Apacheは、sites-enabledディレクトリへのリンクによって有効化された場合にのみ、このディレクトリ内のファイルにアクセスできます。
- /etc/apache2/sites-enabled/
これは、有効化されたバーチャルホストが配置されるディレクトリです。前述のように、a2ensiteコマンドを介してsites-availableディレクトリ内のファイルをリンクすると、ホストが有効になります。このディレクトリ内のファイルは、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/
これらのディレクトリも、上記の2つの例と同様の関係にあります。これらには、利用可能なモジュールと、a2enmodコマンドによって有効化されたモジュールが含まれています。モジュールを無効にするには、a2dismodコマンドを使用できます。拡張子が .load のファイルには、特定のモジュールをロードできるフラグメントが含まれています。拡張子が .conf のファイルには、そのモジュールに関連する設定の詳細が保持されています。
サーバーログ
- /var/log/apache2/access.log
このログファイルには、サーバーに対して行われたすべてのリクエストが含まれています。これはデフォルトで実行されます。リクエストの記録方法を異なる方法で構成するようにApacheを設定することも可能です。
- /var/log/apache2/error.log
これはエラーログです。発生したすべてのエラーは、デフォルトでこのファイルに直接記録されます。LogLevelディレクティブを使用することで、エラーログが記録される詳細度を確認できます。
まとめ
最後に、上記の手順に従うことで、Ubuntu 18.04にApacheウェブサーバーを簡単にインストールできます。システムにサーバーを導入したら、プラットフォームで利用可能なさまざまなオプションを探索できます。異なるテクノロジーを使用して、さまざまな種類のコンテンツを作成できます。このようにして、サーバー上で独自の、そして便利な体験を構築することができます。
また、Let’s EncryptでApacheサーバーを保護する方法を、当社のステップバイステップのチュートリアルに従って学ぶことができます。CentOS 7にApacheをインストールする方法を学びたい場合は、当社のCentOS 7にLinux、Apache、MySQL、PHP (LAMP) スタックをインストールする方法に関するチュートリアルをご覧ください。.
快適なコンピューティングを!
コメント
コメントはまだありません。最初のコメントを投稿しましょう。