Ubuntu16.04にApacheWebサーバーをインストールする方法
序章
Apache HTTPサーバーは、世界で最も広く使用されているWebサーバーです。 動的にロード可能なモジュール、堅牢なメディアサポート、他の一般的なソフトウェアとの広範な統合など、多くの強力な機能を提供します。
このガイドでは、Ubuntu16.04サーバーにApacheWebサーバーをインストールする方法について説明します。
前提条件
このガイドを開始する前に、サーバーにsudo
権限が設定されたroot以外の通常のユーザーが必要です。 さらに、必須ではないポートをブロックするように基本的なファイアウォールを構成する必要があります。 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暗号化トラフィック)のみを開きます
ここでは、次のように入力して、 ApacheFullプロファイルの着信トラフィックを許可します。
- 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サーバーを確認します
インストールプロセスの最後に、Ubuntu16.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: active (running) 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を使用していて、サーバーにドメイン名を設定していない場合は、ガイドDigitalOceanでドメインを設定する方法に従ってドメイン名を設定できます。
サーバーのドメイン名を設定したくない場合は、サーバーのパブリックIPアドレスを使用できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの異なる方法で取得できます。
サーバーのコマンドプロンプトで次のように入力してみてください。
- hostname -I
スペースで区切られたいくつかのアドレスが返されます。 Webブラウザーでそれぞれを試して、機能するかどうかを確認できます。
別の方法は、これを入力することです。これにより、インターネット上の別の場所から見たパブリックIPアドレスがわかります。
- sudo apt-get install curl
- curl -4 icanhazip.com
サーバーのIPアドレスまたはドメインがある場合は、それをブラウザのアドレスバーに入力します。
http://server_domain_or_IP
デフォルトのUbuntu16.04ApacheWebページが表示されます。これは次のようになります。
このページは、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
:実際の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サーバーがインストールされたので、提供するコンテンツのタイプと、より豊かなエクスペリエンスを作成するために使用するテクノロジーについて、多くのオプションがあります。
Apache仮想ホストの使用方法についてはこちらをご覧ください。 より完全なアプリケーションスタックを構築したい場合は、 Ubuntu16.04でLAMPスタックを構成する方法に関するこの記事を確認してください。