Debian 11にApache Webサーバーをインストールする方法

はじめに

世界で最も広く利用されているウェブサーバーはApache HTTPサーバーです。このサーバーは、動的にロード可能なモジュール、堅牢なメディアサポート、他の人気ソフトウェアとの幅広い統合など、多くの強力な機能を提供しています。

このガイドでは、Debian 11 サーバーに Apache ウェブサーバーをインストールします。

前提条件

このガイドを始める前に、sudo権限を持つ非ルートユーザーを設定し、非必要なポートをブロックするために有効化されたファイアウォールを備えたDebian 11サーバーを準備する必要があります。Debian 11の最初のサーバーセットアップガイドに従って、これらの手順を学ぶことができます。

この設定が終わったら、非ルートユーザーとしてログインし、最初のステップに進んでください。

ステップ1 — Apacheのインストール

Debianのデフォルトのソフトウェアリポジトリ内でApacheは利用可能であり、従来のパッケージ管理ツールを使用してインストールすることができます。

最新のアップストリームの変更を反映するために、まずローカルパッケージインデックスを更新してください。

  1. sudo apt update

 

それでは、Apache2パッケージをインストールしてください。

  1. sudo apt install apache2

 

インストールを確認した後、aptはApacheと必要なすべての依存関係をインストールします。

ステップ2:ファイアウォールの調整

Apacheのテストを行う前に、外部からのデフォルトのウェブポートへのアクセスを許可するためにファイアウォールの設定を修正する必要があります。前提条件で指示通りに設定を行っていれば、サーバへのアクセスを制限するUFWファイアウォールが構成されているはずです。

インストール中、Apacheは自身をUFWに登録し、ファイアウォールを通じてApacheへのアクセスを有効または無効にするために使用できるいくつかのアプリケーションプロファイルを提供します。

以下のコマンドを実行して、ufwのアプリケーションプロファイルの一覧を表示してください。

  1. sudo ufw app list

 

あなたの出力は、アプリケーションのプロファイルのリストになります。

Output

Available applications: AIM Bonjour CIFS . . . WWW WWW Cache WWW Full WWW Secure . . .

Apacheのプロファイルは、WWWで始まります。

  • WWW: This profile opens only port 80 (normal, unencrypted web traffic)
  • WWW Cache: This profile opens only port 8080 (sometimes used for caching and web proxies)
  • WWW Full: This profile opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic)
  • WWW Secure: This profile opens only port 443 (TLS/SSL encrypted traffic)

このガイドでは、サーバーへのSSLの設定がまだ行われていないため、設定したトラフィックの通信を許可するために、できるだけ制限の厳しいプロファイルを有効にすることが推奨されます。ポート80の通信のみを許可する必要があります。

  1. sudo ufw allow ‘WWW’

 

状態を確認することで変更を検証することができます。

  1. sudo ufw status

 

出力は許可されたHTTPトラフィックのリストを提供します。

Output

Status: active To Action From — —— —- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)

出力によって示された通り、プロファイルがアクティブ化され、Apacheウェブサーバーへのアクセスが許可されました。

ステップ3 – Webサーバーの確認

インストールプロセスの終わりに、Debian 11 はApacheを起動します。ウェブサーバーはすでに稼働しているはずです。

systemdのinitシステムのコマンドを実行して、サービスがアクティブであることを確認してください。

  1. sudo systemctl status apache2

 

Output

● apache2.service – The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Wed 2022-07-06 22:05:45 UTC; 23s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 2796 (apache2) Tasks: 55 (limit: 9509) Memory: 21.0M CPU: 67ms CGroup: /system.slice/apache2.service ├─2796 /usr/sbin/apache2 -k start ├─2798 /usr/sbin/apache2 -k start └─2799 /usr/sbin/apache2 -k start

この出力は、サービスが正常に開始されたことを確認しています。ただし、これを確かめる最良の方法は、Apacheからページをリクエストすることです。

あなたは、IPアドレスを介してソフトウェアが正常に動作していることを確認するために、デフォルトのApacheランディングページにアクセスすることができます。サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの方法で取得することができます。

サーバーのコマンドプロンプトに以下のコマンドを書いてみてください。

  1. hostname -I

 

いくつかのアドレスがスペースで区切られて送信されます。それぞれのアドレスをウェブブラウザで試すことで、動作するかどうかを確認できます。

もう一つの選択肢は、icanhazip.comツールを使用することです。これは、アクセスするとインターネット上の別の場所から読み取られたマシンのパブリックIPアドレスを返すウェブサイトです。curlがまだインストールされていない場合は、次のコマンドを使用してインストールすることができます。

  1. sudo apt install curl

 

それでは、IPv4を使用してcurlを使ってicanhazip.comを取得します。

  1. curl -4 icanhazip.com

 

サーバーのIPアドレスを持っている場合は、それをブラウザのアドレスバーに入力してください。

http://your_server_ip

デフォルトのDebian 11 Apacheのウェブページをご覧になるべきです。

Apache default page

このページは、Apacheが正常に動作していることを示しています。また、重要なApacheのファイルやディレクトリの場所に関する基本情報も含まれています。

ステップ4 – Apacheプロセスの管理

ウェブサーバーが起動しているので、systemctlを使用して基本的な管理コマンドを確認しましょう。

ウェブサーバーを停止するには、次のコマンドを実行してください。

  1. sudo systemctl stop apache2

 

停止している場合、Webサーバーを起動するには、次を実行してください:

  1. sudo systemctl start apache2

 

サービスを停止してから再度開始するには、次のコマンドを実行してください。

  1. sudo systemctl restart apache2

 

設定変更のみを行う場合、Apacheはしばしば接続を切断せずに再読み込みできます。これを行うためには、次のコマンドを使用してください。

  1. sudo systemctl reload apache2

 

デフォルトでは、Apacheはサーバーの起動時に自動的に開始するように設定されています。もし望まない場合は、次のコマンドを実行してこの挙動を無効化してください。

  1. sudo systemctl disable apache2

 

起動時にサービスを再度有効にするには、以下のコマンドを実行してください。

  1. sudo systemctl enable apache2

 

Apacheは、サーバーが再起動すると自動的に開始します。

ステップ5 — バーチャルホストの設定(推奨)

Apacheウェブサーバーを使用する際には、仮想ホスト(nginxのサーバーブロックに似たもの)を使用して、1つのサーバーから複数のドメインをホストするための設定詳細をカプセル化することができます。ここでは、your_domainというドメインを設定しますが、自分自身のドメイン名に置き換えてください。

Info

情報: もしSilicon Cloudでドメイン名を設定する場合は、弊社のネットワーキングの文書を参照してください。

デフォルトで有効化されているDebian 11上のApacheは、/var/www/htmlディレクトリからドキュメントを提供するように設定されています。これは単一のサイトに対してはうまく動作しますが、複数のサイトをホストする場合は使いにくくなる可能性があります。/var/www/htmlを変更する代わりに、/var/www内にyour_domainサイトのディレクトリ構造を作成し、他のサイトとマッチしない場合にはデフォルトのディレクトリとして/var/www/htmlが提供されるようにしてください。

次のように、your_domainのディレクトリを作成してください。

  1. sudo mkdir -p /var/www/your_domain

 

次に、$USER環境変数を使用して、現在ログインしているユーザーにディレクトリの所有権を割り当ててください。

  1. sudo chown -R $USER:$USER /var/www/your_domain

 

もしumaskの値を変更していなければ、Webルートのパーミッションは正しく設定されている必要があります。所有者がファイルを読み書き実行できるようにし、グループと他のユーザーには読み取りと実行の権限のみを与えるために、以下のコマンドを入力してください。

  1. sudo chmod -R 755 /var/www/your_domain

 

次に、好きなテキストエディタを使って、サンプルのindex.htmlページを作成します。ここでは、nanoを使います。

  1. nano /var/www/your_domain/index.html

 

内部には、次のサンプルHTMLを追加してください。

/var/www/your_domain/index.htmlを日本語で言い換えると、以下のようになります:
「/var/www/your_domain/index.html」
<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

終わったらファイルを保存して閉じてください。nanoを使用している場合は、CTRL + Xを押し、その後YとENTERを押すことで保存と終了ができます。

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

 

次の設定ブロックを挿入してください。この設定はデフォルトに似ていますが、新しいディレクトリとドメイン名に更新されています。

あなたのドメインの設定は、/etc/apache2/sites-available/your_domain.confに保存されています。
<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>

新しいディレクトリにDocumentRootを更新し、your_domainサイトの管理者がアクセスできるメールにServerAdminを設定していることに注意してください。また、ServerNameというディレクティブを追加し、この仮想ホスト定義と一致する基本ドメインを設定しました。さらに、ServerAliasというディレクティブも追加し、ベース名と同じように一致する他の名前を定義しています。

終わったら、ファイルを保存して閉じてください。

今、a2ensiteツールを使用してファイルを有効にしてください。

  1. sudo a2ensite your_domain.conf

 

000-default.confで定義されているデフォルトのサイトを無効化してください。

  1. sudo a2dissite 000-default.conf

 

次に、構成エラーのテストを行います。 (Tsugi ni, kōsei era no tesuto o okonaimasu.)

  1. sudo apache2ctl configtest

 

以下の出力を受け取るべきです。

Output

AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message Syntax OK

あなたの変更を実装するために、Apacheを再起動してください。

  1. sudo systemctl restart apache2

 

アパッチは今、あなたのドメイン名を提供します。 http://your_domain にアクセスすることで、以下のようなものが表示されますので、テストすることができます。

Apache virtual host example

ステップ6 – 重要なApacheのファイルとディレクトリに慣れる

「Apacheサービスを自己管理する方法を理解した今、重要なディレクトリとファイルについて少し時間を割いて理解するべきです。」

内容

  • /var/www/html: The actual web content, which by default only consists of the default Apache page you saw earlier, is served out of the /var/www/html directory. This can be changed by altering Apache configuration files.

サーバーの設定

  • /etc/apache2: The Apache configuration directory. All of the Apache configuration files reside here.
  • /etc/apache2/apache2.conf: The main Apache configuration file. This can be modified to make changes to the Apache global configuration. This file is responsible for loading many of the other files in the configuration directory.
  • /etc/apache2/ports.conf: This file specifies the ports that Apache will listen on. By default, Apache listens on port 80 and additionally listens on port 443 when a module providing SSL capabilities is enabled.
  • /etc/apache2/sites-available/: The directory where per-site virtual hosts can be stored. Apache will not use the configuration files found in this directory unless they are linked to the sites-enabled directory. Typically, all server block configuration is done in this directory and then enabled by linking to the other directory with the a2ensite command.
  • /etc/apache2/sites-enabled/: The directory where enabled per-site virtual hosts are stored. Typically, these are created by linking to configuration files found in the sites-available directory with the a2ensite. Apache reads the configuration files and links found in this directory when it starts or reloads to compile a complete configuration.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: These directories have the same relationship as the sites-available and sites-enabled directories, but are used to store configuration fragments that do not belong in a virtual host. Files in the conf-available directory can be enabled with the a2enconf command and disabled with the a2disconf command.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: These directories contain the available and enabled modules, respectively. Files ending in .load contain fragments to load specific modules, while files ending in .conf contain the configuration for those modules. Modules can be enabled and disabled using the a2enmod and a2dismod commands.

サーバーログ

  • /var/log/apache2/access.log: By default, every request to your web server is recorded in this log file unless Apache is configured to do otherwise.
  • /var/log/apache2/error.log: By default, all errors are recorded in this file. The LogLevel directive in the Apache configuration specifies how much detail the error logs will contain.

結論

ウェブサーバーがインストールされたので、提供するコンテンツの種類やより充実した体験を作るために使用できる技術には多くの選択肢があります。

もしより完全なアプリケーションスタックを構築したい場合は、Debian 11でLAMPスタックを設定する方法についての記事を読んでみることをおすすめします。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds