前書き

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

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

前提条件

このガイドを開始する前に、サーバーにsudo特権を持つ通常の非rootユーザーが設定されている必要があります。 さらに、重要でないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 initial 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)

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

ステップ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:  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://

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

image:https://assets.digitalocean.com/articles/how-to-install-lamp-ubuntu-16/small_apache_default.png [Apacheのデフォルトページ]

このページは、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サーバーを使用する場合、virtual hosts(Nginxのサーバーブロックに類似)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 * your_domain というドメインを設定しますが、これを*自分のドメイン名に置き換える必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-dns [DigitalOcean DNSの紹介]をご覧ください。

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

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

sudo mkdir /var/www/

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

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

`+ unmask +`の値を変更していない場合、Webルートの権限は正しいはずですが、次のように入力して確認できます。

sudo chmod -R 755 /var/www/

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

nano /var/www//index.html

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

/var/www/your_domain/index.html

<html>
   <head>
       <title>Welcome to !</title>
   </head>
   <body>
       <h1>Success!  The  virtual host is working!</h1>
   </body>
</html>

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

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

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

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

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

<VirtualHost *:80>
   ServerAdmin [email protected]
   ServerName
   ServerAlias
   DocumentRoot /var/www/
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

`+ DocumentRoot `を新しいディレクトリに更新し、 ` ServerAdmin `を* your_domain *サイト管理者がアクセスできるメールに更新したことに注意してください。 また、2つのディレクティブを追加しました。この仮想ホスト定義に一致するベースドメインを確立する「 ServerName 」と、ベース名であるかのように一致する追加の名前を定義する「 ServerAlias +」です。

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

`+ a2ensite +`ツールでファイルを有効にしましょう:

sudo a2ensite .conf

`+ 000-default.conf +`で定義されているデフォルトのサイトを無効にします:

sudo a2dissite 000-default.conf

次に、構成エラーをテストします。

sudo apache2ctl configtest

次のような出力が表示されるはずです。

OutputSyntax OK

Apacheを再起動して、変更を実装します。

sudo systemctl restart apache2

Apacheがドメイン名を提供しているはずです。 これをテストするには、「+ http:// +」に移動します。次のように表示されます。

image:https://assets.digitalocean.com/articles/apache_virtual_hosts_ubuntu/vhost_your_domain.png [Apache仮想ホストの例]

ステップ6 –重要なApacheファイルとディレクトリに精通する

Apacheサービス自体の管理方法がわかったので、数分かけて、いくつかの重要なディレクトリとファイルに慣れる必要があります。

コンテンツ

  • + / var / www / html:実際には、先ほど見たデフォルトのApacheページのみで構成されるWebコンテンツは、` + / 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 / +:有効なサイトごとの仮想ホストが保存されているディレクトリ。 通常、これらは、 `+ 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 / +:これらのディレクトリには、それぞれ使用可能なモジュールと有効なモジュールが含まれています。 「+ .load 」で終わるファイルには特定のモジュールをロードするフラグメントが含まれ、「。conf 」で終わるファイルにはそれらのモジュールの設定が含まれます。 モジュールは、 ` a2enmod `および ` a2dismod +`コマンドを使用して有効化および無効化できます。

サーバーログ

  • + / var / log / apache2 / access.log +:デフォルトでは、Apacheがそうするように設定されていない限り、Webサーバーへのすべてのリクエストはこのログファイルに記録されます。

  • + / var / log / apache2 / error.log +:デフォルトでは、すべてのエラーはこのファイルに記録されます。 Apache設定の `+ LogLevel +`ディレクティブは、エラーログに含まれる詳細度を指定します。

結論

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

より完全なアプリケーションスタックを構築する場合は、https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lampのこの記事をご覧ください。 -stack-ubuntu-18-04 [Ubuntu 18.04でLAMPスタックを構成する方法]。