Debian10にApacheWebサーバーをインストールする方法
序章
Apache HTTPサーバーは、世界で最も広く使用されているWebサーバーです。 動的にロード可能なモジュール、堅牢なメディアサポート、他の一般的なソフトウェアとの広範な統合など、多くの強力な機能を提供します。
このガイドでは、Debian10サーバーにApacheWebサーバーをインストールする方法について説明します。
前提条件
このガイドを開始する前に、サーバーにsudo権限を持つ通常の非rootユーザーが設定されている必要があります。 さらに、必須ではないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 通常のユーザーアカウントを設定し、サーバーのファイアウォールを設定する方法については、Debian10の初期サーバー設定ガイドに従ってください。
利用可能なアカウントがある場合は、root以外のユーザーとしてログインして開始します。
ステップ1—Apacheをインストールする
ApacheはDebianのデフォルトのソフトウェアリポジトリ内で利用可能であり、従来のパッケージ管理ツールを使用してインストールすることができます。
最新のアップストリームの変更を反映するようにローカルパッケージインデックスを更新することから始めましょう。
- sudo apt update
次に、をインストールします apache2
パッケージ:
- sudo apt install apache2
インストールを確認した後、 apt
Apacheと必要なすべての依存関係をインストールします。
ステップ2—ファイアウォールを調整する
Apacheをテストする前に、ファイアウォール設定を変更して、デフォルトのWebポートへの外部アクセスを許可する必要があります。 前提条件の指示に従ったと仮定すると、サーバーへのアクセスを制限するようにUFWファイアウォールを構成する必要があります。
インストール中に、ApacheはUFWに登録して、ファイアウォールを介したApacheへのアクセスを有効または無効にするために使用できるいくつかのアプリケーションプロファイルを提供します。
リストする ufw
次のように入力してアプリケーションプロファイルを作成します。
- sudo ufw app list
アプリケーションプロファイルのリストが表示されます。
OutputAvailable applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .
ApacheプロファイルはWWWで始まります。
- WWW :このプロファイルはポート80(通常の暗号化されていないWebトラフィック)のみを開きます
- WWWキャッシュ:このプロファイルはポート8080のみを開きます(キャッシュやWebプロキシに使用されることもあります)
- WWW Full :このプロファイルは、ポート80(通常の暗号化されていないWebトラフィック)とポート443(TLS / SSL暗号化トラフィック)の両方を開きます
- WWW Secure :このプロファイルはポート443(TLS / SSL暗号化トラフィック)のみを開きます
構成したトラフィックを引き続き許可する最も制限の厳しいプロファイルを有効にすることをお勧めします。 このガイドではまだサーバーのSSLを構成していないため、ポート80でのトラフィックのみを許可する必要があります。
- sudo ufw allow 'WWW'
次のように入力して、変更を確認できます。
- sudo ufw status
表示された出力に許可されたHTTPトラフィックが表示されます。
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
ご覧のとおり、プロファイルはWebサーバーへのアクセスを許可するようにアクティブ化されています。
ステップ3—Webサーバーを確認する
インストールプロセスの最後に、Debian10はApacheを起動します。 Webサーバーはすでに稼働しているはずです。
に確認してください systemd
次のように入力して、サービスが実行されていることを確認するinitsystem。
- sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago
Docs: https://httpd.apache.org/docs/2.4/
. . .
Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server...
Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive global
Jul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.
この出力からわかるように、サービスは正常に開始されたように見えます。 ただし、これをテストする最良の方法は、Apacheにページを要求することです。
デフォルトのApacheランディングページにアクセスして、ソフトウェアがIPアドレスを介して正しく実行されていることを確認できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの異なる方法で取得できます。
サーバーのコマンドプロンプトで次のように入力してみてください。
- hostname -I
スペースで区切られたいくつかのアドレスが返されます。 Webブラウザーでそれぞれを試して、機能するかどうかを確認できます。
別の方法は、 curl
ツール。インターネット上の別の場所から見たパブリックIPアドレスを提供します。
まず、インストールします curl
を使用して apt
:
- sudo apt install curl
次に、 curl
IPv4を使用してicanhazip.comを取得するには:
- curl -4 icanhazip.com
サーバーのIPアドレスを取得したら、それをブラウザのアドレスバーに入力します。
http://your_server_ip
デフォルトのDebian10ApacheWebページが表示されます。
このページは、Apacheが正しく機能していることを示しています。 また、重要なApacheファイルとディレクトリの場所に関する基本的な情報も含まれています。
ステップ4—Apacheプロセスの管理
Webサーバーが稼働しているので、いくつかの基本的な管理コマンドを見ていきましょう。
Webサーバーを停止するには、次のように入力します。
- sudo systemctl stop apache2
停止時にWebサーバーを起動するには、次のように入力します。
- sudo systemctl start apache2
サービスを停止してから再開するには、次のように入力します。
- sudo systemctl restart apache2
単に構成を変更するだけの場合、Apacheは接続を切断せずにリロードできることがよくあります。 これを行うには、次のコマンドを使用します。
- sudo systemctl reload apache2
デフォルトでは、Apacheはサーバーの起動時に自動的に起動するように構成されています。 これが希望どおりでない場合は、次のように入力してこの動作を無効にします。
- sudo systemctl disable apache2
起動時にサービスを再度有効にするには、次のように入力します。
- sudo systemctl enable apache2
サーバーが再起動すると、Apacheが自動的に起動するようになりました。
手順5—仮想ホストの設定(推奨)
Apache Webサーバーを使用する場合、仮想ホスト(Nginxのサーバーブロックと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 次のコマンドで、 replace your_domain
独自のドメイン名。 DigitalOceanを使用したドメイン名の設定の詳細については、DigitalOceanDNSの概要を参照してください。
Debian 10上のApacheでは、デフォルトで1つのサーバーブロックが有効になっており、 /var/www/html
ディレクトリ。 これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は扱いにくくなる可能性があります。 変更する代わりに /var/www/html
、内にディレクトリ構造を作成しましょう /var/www
私たちのために your_domain
サイト、去る /var/www/html
クライアント要求が他のサイトと一致しない場合に提供されるデフォルトのディレクトリとして配置されます。
のディレクトリを作成します your_domain
次のように、 -p
必要な親ディレクトリを作成するためのフラグ:
- sudo mkdir -p /var/www/your_domain
次に、ディレクトリの所有権を $USER
環境変数:
- sudo chown -R $USER:$USER /var/www/your_domain
変更していない場合は、Webルートの権限が正しいはずです。 unmask
値ですが、次のように入力して確認できます。
- sudo chmod -R 755 /var/www/your_domain
次に、サンプルを作成します index.html
使用するページ nano
またはお気に入りの編集者:
- nano /var/www/your_domain/index.html
内部に、次のサンプルHTMLを追加します。
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain virtual host is working!</h1>
</body>
</html>
終了したら、ファイルを保存して閉じます。
Apacheがこのコンテンツを提供するには、正しいディレクティブを使用して仮想ホストファイルを作成する必要があります。 にあるデフォルトの構成ファイルを変更する代わりに /etc/apache2/sites-available/000-default.conf
直接、で新しいものを作りましょう /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
次の構成ブロックに貼り付けます。これはデフォルトに似ていますが、新しいディレクトリとドメイン名用に更新されています。
<VirtualHost *:80>
ServerAdmin admin@your_email_domain
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
新しいディレクトリに ServerAdmin
そのメールに your_domain
サイト管理者がアクセスできます。 また、2つのディレクティブを追加しました。 ServerName
、この仮想ホスト定義に一致する必要があるベースドメインを確立し、 ServerAlias
、ベース名であるかのように一致する必要がある追加の名前を定義します。
終了したら、ファイルを保存して閉じます。
でファイルを有効にしましょう a2ensite
道具:
- sudo a2ensite your_domain.conf
で定義されているデフォルトサイトを無効にする 000-default.conf
:
- sudo a2dissite 000-default.conf
次に、構成エラーをテストしましょう。
- sudo apache2ctl configtest
次の出力が表示されます。
OutputAH00558: 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を再起動して、変更を実装します。
- sudo systemctl restart apache2
これで、Apacheがドメイン名を提供するはずです。 次の場所に移動して、これをテストできます。 http://your_domain
、次のようなものが表示されます。
ステップ6–重要なApacheファイルとディレクトリに精通する
Apacheサービス自体を管理する方法がわかったので、いくつかの重要なディレクトリとファイルに慣れるために数分かかる必要があります。
コンテンツ
/var/www/html
:実際のWebコンテンツは、デフォルトでは前に見たデフォルトのApacheページのみで構成されており、/var/www/html
ディレクトリ。 これは、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が別の方法で設定されていない限り、Webサーバーへのすべてのリクエストがこのログファイルに記録されます。/var/log/apache2/error.log
:デフォルトでは、すべてのエラーがこのファイルに記録されます。 TheLogLevel
Apache構成のディレクティブは、エラーログに含まれる詳細を指定します。
結論
Webサーバーがインストールされたので、提供できるコンテンツの種類と、より豊かなエクスペリエンスを作成するために使用できるテクノロジーについて、多くのオプションがあります。
より完全なアプリケーションスタックを構築したい場合は、 Debian10でLAMPスタックを構成する方法に関するこの記事を参照してください。