前書き

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

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

前提条件

このガイドを始める前に、サーバーで設定された `+ sudo +`権限を持つ通常の非rootユーザーが必要です。 さらに、重要でないポートをブロックするために基本的なファイアウォールを構成する必要があります。 initial Ubuntu 16.04のサーバーセットアップガイド

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

ステップ1:Apacheをインストールする

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

最初に、ローカルパッケージインデックスを更新して、最新のアップストリームの変更を反映します。 その後、 `+ apache2 +`パッケージをインストールできます。

sudo apt-get update
sudo apt-get install apache2

インストールを確認した後、 `+ apt-get +`は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暗号化トラフィック)のみを開きます

ここでは、次のように入力して、* Apache Full *プロファイルの着信トラフィックを許可します。

sudo ufw allow 'Apache Full'

次のように入力して、変更を確認できます。

sudo ufw status

表示された出力で許可されたHTTPトラフィックが表示されるはずです。

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)

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

ステップ3:Webサーバーを確認する

インストールプロセスの最後に、Ubuntu 16.04がApacheを起動します。 Webサーバーは既に稼働している必要があります。

次のように入力して、 + systemd + initシステムでサービスが実行されていることを確認できます。

sudo systemctl status apache2
Output● apache2.service - LSB: Apache2 web server
  Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
 Drop-In: /lib/systemd/system/apache2.service.d
          └─apache2-systemd.conf
  Active:  since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago
    Docs: man:systemd-sysv-generator(8)
 Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
 Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
   Tasks: 55
  Memory: 2.3M
     CPU: 4.094s
  CGroup: /system.slice/apache2.service
          ├─4374 /usr/sbin/apache2 -k start
          ├─4377 /usr/sbin/apache2 -k start
          └─4378 /usr/sbin/apache2 -k start

May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server.
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]:  * Starting Apache httpd web server apache2
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: 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
May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]:  *
May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.

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

デフォルトのApacheランディングページにアクセスして、ソフトウェアが適切に実行されていることを確認できます。 これには、サーバーのドメイン名またはIPアドレスを使用してアクセスできます。

DigitalOceanを使用していて、サーバーにドメイン名が設定されていない場合は、https://digitalocean.com/community/articles/how-to-set-up-a-host-name-withのガイドに従ってください。 -digitalocean [DigitalOceanでドメインを設定する方法]を設定します。

サーバーのドメイン名を設定したくない場合は、サーバーのパブリックIPアドレスを使用できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの異なる方法で取得できます。

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

hostname -I

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

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

sudo apt-get install curl
curl -4 icanhazip.com

サーバーのIPアドレスまたはドメインを取得したら、ブラウザのアドレスバーに入力します。

http://

デフォルトのUbuntu 16.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ファイルとディレクトリに精通する

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

コンテンツ

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

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