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

前書き

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

このガイドでは、Ubuntu 18.04サーバーにApache Webサーバーをインストールする方法を説明します。

前提条件

このガイドを開始する前に、サーバーにsudo特権を持つ通常の非rootユーザーが設定されている必要があります。 さらに、重要でないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 initial server setup guide for Ubuntu 18.04を実行することで、通常のユーザーアカウントを構成し、サーバーにファイアウォールを設定する方法を学ぶことができます。

アカウントを使用できるようになったら、非rootユーザーとしてログインして開始します。

[[step-1 -—- installing-apache]] ==ステップ1—Apacheのインストール

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

最初に、ローカルパッケージインデックスを更新して、最新のアップストリームの変更を反映させます。

sudo apt update

次に、apache2パッケージをインストールします。

sudo apt install apache2

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

[[step-2 -—-ファイアウォールの調整]] ==ステップ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)

ご覧のように、プロファイルはWebサーバーへのアクセスを許可するためにアクティブ化されています。

[[step-3 -—- checking-your-web-server]] ==ステップ3—Webサーバーをチェックする

インストールプロセスの最後に、Ubuntu 18.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: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
 Main PID: 2583 (apache2)
    Tasks: 55 (limit: 1153)
   CGroup: /system.slice/apache2.service
           ├─2583 /usr/sbin/apache2 -k start
           ├─2585 /usr/sbin/apache2 -k start
           └─2586 /usr/sbin/apache2 -k start

この出力からわかるように、サービスは正常に開始されたようです。 ただし、これをテストする最良の方法は、Apacheからページをリクエストすることです。

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

サーバーのコマンドプロンプトでこれを入力してみてください。

hostname -I

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

別の方法として、これを入力します。これにより、インターネット上の別の場所から見たパブリックIPアドレスが得られます。

curl -4 icanhazip.com

サーバーのIPアドレスがわかったら、ブラウザのアドレスバーに入力します。

http://your_server_ip

デフォルトのUbuntu 18.04 Apache Webページが表示されます。

Apache default page

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

[[step-4 -—- managing-the-apache-process]] ==ステップ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が自動的に起動します。

[[step-5 -—- setting-up-virtual-hosts-recommended]] ==ステップ5—仮想ホストの設定(推奨)

Apache Webサーバーを使用する場合、virtual hosts(Nginxのサーバーブロックと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 your_domainというドメインを設定しますが、replace this with your own domain nameを設定する必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、Introduction to DigitalOcean DNSを参照してください。

Ubuntu 18.04上のApacheでは、/var/www/htmlディレクトリからドキュメントを提供するように構成された1つのサーバーブロックがデフォルトで有効になっています。 これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は扱いにくい場合があります。 /var/www/htmlを変更する代わりに、your_domainサイトの/var/www内にディレクトリ構造を作成し、クライアントの要求がない場合に提供されるデフォルトのディレクトリとして/var/www/htmlを残します。 t他のサイトと一致します。

次のようにyour_domainのディレクトリを作成します。

sudo mkdir /var/www/your_domain

次に、$USER環境変数を使用してディレクトリの所有権を割り当てます。

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

unmask値を変更していない場合は、Webルートのアクセス許可が正しいはずですが、次のように入力して確認できます。

sudo chmod -R 755 /var/www/your_domain

次に、nanoまたはお気に入りのエディターを使用してサンプルのindex.htmlページを作成します。

nano /var/www/your_domain/index.html

内部に、次のサンプルHTMLを追加します。

/var/www/your_domain/index.html


    
        Welcome to Your_domain!
    
    
        

Success! The your_domain virtual host is working!

完了したら、ファイルを保存して閉じます。

Apacheがこのコンテンツを提供するには、正しいディレクティブを使用して仮想ホストファイルを作成する必要があります。 /etc/apache2/sites-available/000-default.confにあるデフォルトの構成ファイルを直接変更する代わりに、/etc/apache2/sites-available/your_domain.confに新しい構成ファイルを作成しましょう。

sudo nano /etc/apache2/sites-available/your_domain.conf

次の構成ブロックに貼り付けます。これはデフォルトに似ていますが、新しいディレクトリとドメイン名に合わせて更新されています。

/etc/apache2/sites-available/your_domain.conf


    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

DocumentRootを新しいディレクトリに更新し、ServerAdminyour_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に移動します。ここで、次のようなものが表示されます。

Apache virtual host example

[[step-6 -–- getting-familiar-with-important-apache-files-and-directories]] ==ステップ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:デフォルトでは、すべてのエラーがこのファイルに記録されます。 Apache構成のLogLevelディレクティブは、エラーログに含まれる詳細の量を指定します。

結論

Webサーバーがインストールされたので、提供できるコンテンツの種類と、より豊かなエクスペリエンスを作成するために使用できるテクノロジに関する多くのオプションがあります。

より完全なアプリケーションスタックを構築したい場合は、how to configure a LAMP stack on Ubuntu 18.04に関するこの記事をご覧ください。

Related