Ubuntu18.04にApacheWebサーバーをインストールする方法
序章
Apache HTTPサーバーは、世界で最も広く使用されているWebサーバーです。 動的にロード可能なモジュール、堅牢なメディアサポート、他の一般的なソフトウェアとの広範な統合など、多くの強力な機能を提供します。
このガイドでは、Ubuntu18.04サーバーにApacheWebサーバーをインストールする方法を学習します。 このガイドでは、重要なApacheファイルとディレクトリに関する情報も概説しています。
前提条件
このガイドを開始する前に、サーバーにsudo権限を持つ通常の非rootユーザーが設定されている必要があります。 さらに、必須ではないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 Ubuntu 18.04 の初期サーバーセットアップガイドに従って、通常のユーザーアカウントを構成し、サーバーのファイアウォールをセットアップする方法を学ぶことができます。
アカウントを作成したら、root以外のユーザーとしてログインして開始します。
ステップ1—Apacheをインストールする
ApacheはUbuntuのデフォルトのソフトウェアリポジトリ内で利用可能であり、従来のパッケージ管理ツールを使用してインストールすることができます。
最新のアップストリームの変更を反映するようにローカルパッケージインデックスを更新することから始めましょう。
- sudo apt update
次に、をインストールします apache2
パッケージ:
- sudo apt install apache2
インストールを確認した後、 apt
Apacheと必要なすべての依存関係をインストールします。
ステップ2—ファイアウォールを調整する
Apacheをテストする前に、ファイアウォール設定を変更して、デフォルトのWebポートへの外部アクセスを許可する必要があります。 前提条件の指示に従った場合は、サーバーへのアクセスを制限するようにUFWファイアウォールを構成する必要があります。
インストール中に、ApacheはUFWに登録して、ファイアウォールを介したApacheへのアクセスを有効または無効にするために使用できるいくつかのアプリケーションプロファイルを提供します。
リストする ufw
次のコマンドを実行して、アプリケーションプロファイルを作成します。
- sudo ufw app list
これにより、アプリケーションプロファイルのリストが返されます。
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
このリストは、Apacheで使用できるプロファイルが3つあることを示しています。
- Apache :このプロファイルはポートのみを開きます
80
(通常の暗号化されていないWebトラフィック) - Apache Full :このプロファイルは両方のポートを開きます
80
(通常の暗号化されていないWebトラフィック)とポート443
(TLS / SSL暗号化トラフィック) - Apache Secure :このプロファイルはポートのみを開きます
443
(TLS / SSL暗号化トラフィック)
構成したトラフィックを引き続き許可する最も制限の厳しいプロファイルを有効にすることをお勧めします。 このガイドではまだサーバーのSSLを構成していないため、ポートでのトラフィックのみを許可する必要があります 80
:
- sudo ufw allow 'Apache'
ステータスを確認して、この変更を確認します。
- sudo ufw status
これで、許可されたHTTPトラフィックが出力に表示されます。
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
The Apache
これで、プロファイルがアクティブ化され、Webサーバーにアクセスできるようになりました。
ステップ3—Webサーバーを確認する
インストールプロセスの最後に、Ubuntu18.04はApacheを起動します。 Webサーバーはすでに稼働しているはずです。
に確認してください systemd
サービスが実行されていることを確認するためのinitシステム:
- sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2021-09-28 16:52:56 UTC; 1min 14s ago
Main PID: 9409 (apache2)
Tasks: 55 (limit: 4915)
CGroup: /system.slice/apache2.service
├─9409 /usr/sbin/apache2 -k start
├─9410 /usr/sbin/apache2 -k start
└─9411 /usr/sbin/apache2 -k start
この出力は、サービスが正常に開始されたことを示しています。 ただし、これを確認する最良の方法は、Apacheにページを要求することです。
デフォルトのApacheランディングページにアクセスして、ソフトウェアがIPアドレスを介して正しく実行されていることを確認できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの異なる方法で取得できます。
サーバーのコマンドプロンプトで次を実行します。
- hostname -I
スペースで区切られたいくつかのアドレスを受け取ります。 Webブラウザーでそれぞれを試して、機能するかどうかを確認できます。
別の方法として、次のコマンドを実行します。これにより、インターネット上の別の場所から識別されるパブリックIPアドレスが提供されます。
- curl -4 icanhazip.com
サーバーのIPアドレスを取得したら、それをブラウザのアドレスバーに入力します。
http://your_server_ip
デフォルトのUbuntu18.04ApacheWebページを受け取るはずです。
このWebページは、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のサーバーブロックと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 この例では、 your_domain というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、 DigitalOceanDNSの概要をお読みください。
Ubuntu 18.04上のApacheでは、デフォルトで1つのサーバーブロックが有効になっており、 /var/www/html
ディレクトリ。 これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は扱いにくくなる可能性があります。 変更する代わりに /var/www/html
、内にディレクトリ構造を作成します /var/www
your_domain サイトの場合、 /var/www/html
クライアント要求が他のサイトと一致しない場合に提供されるデフォルトのディレクトリとして配置されます。
次のように、your_domainのディレクトリを作成します。
- sudo mkdir /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>
終了したら、ファイルを保存して閉じます。 使用した場合 nano
、を押して終了できます CTRL + X
、 それから Y
、 と ENTER
.
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 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
新しいディレクトリに ServerAdmin
your_domainサイト管理者がアクセスできる電子メールに。 また、2つのディレクティブを追加しました。 ServerName
、この仮想ホスト定義に一致する必要があるベースドメインを確立し、 ServerAlias
、ベース名であるかのように一致する必要がある追加の名前を定義します。
終了したら、ファイルを保存して閉じます。
次に、ファイルを有効にします a2ensite
道具:
- sudo a2ensite your_domain.conf
で定義されているデフォルトサイトを無効にする 000-default.conf
:
- sudo a2dissite 000-default.conf
次に、構成エラーをテストします。
- sudo apache2ctl configtest
次の出力が表示されます。
OutputSyntax 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構成のディレクティブは、エラーログに含まれる詳細を指定します。
結論
Apache Webサーバーがインストールされたので、提供できるコンテンツのタイプと、より豊かなエクスペリエンスを作成するために使用できるテクノロジーについて、多くのオプションがあります。
より完全なアプリケーションスタックを構築したい場合は、 Ubuntu18.04でLAMPスタックを構成する方法に関するこの記事を読むことができます。 また、 Ubutnu 18.04でLet’sEncryptを使用してApacheを保護する方法に関するこのチュートリアルで、無料のTLS/SSL証明書を取得してインストールする方法を学ぶことができます。