1. ホーム
  2. コース一覧
  3. Linux応用コース
  4. Webサーバーを立ててみよう①

Linux応用コース7/11

Webサーバーを立ててみよう①

こちらでは、Apache(アパッチ)について解説します。

Apache(正式名:Apache HTTP Server)は古くから現在に至るまで、世界的に人気なWebサーバーソフトウェアです。

その名前は、ネイティブアメリカンであるアパッチ族に由来しているとされていますが、諸説あります。

Apacheは、Apache Software Foundationによって開発・運用されています。Apacheはオープンソースソフトウェアであるため、誰でも無料で利用することができます。

Apacheには大きく分けて 1と2の2つのバージョンがあり、現在(本記事執筆時: 2022/3/15)、2.4.53(2022/3/14にリリースされました)が最新バージョンとなっています。

※ オープンソースソフトウェア(OSS)とは、ソフトウェアの作成者や開発した団体などがそのソースコードを無償で一般公開しており、誰でも利用できしたり、それを改変したものを再配布したりできるソフトウェアのことです。

また、他者がそのOSSを利用する上での注意事項や利用規約などを提示したライセンスも一緒に用意されており、OSSの場合、OSSライセンスと呼ばれます。

※ Apache Software Foundationは、Apacheの開発中心メンバーであったBrian Behlendorf氏を中心として結成された非営利団体です。

Webサーバーとは

Webサーバーは、HTMLファイルや画像ファイルなどの静的ファイルを保管しておき、Webブラウザなどからのリクエストに応じて該当のファイルを返すコンピュータのことです。

Web上にサイトやアプリケーションを公開する際には、HTTP(もしくはHTTPS)という通信プロトコルを使用することから、HTTPサーバーとも呼ばれます。

静的ファイルとは、予め作成されており、ユーザー情報など関係なくすべての閲覧者に同様の内容を表示するページのことです。

静的ファイルの他にも、ユーザー情報などを反映し、ユーザーごとに異なるページを表示する動的ファイルがあります。

動的ファイルの場合は、ユーザーから何かしらのデータを受け取り、予めプログラミング言語のインストールされているWebアプリケーションサーバーでプログラムを実行してユーザー専用のページを動的に生成します。

その際に何らかのデータが必要な場合は、データベースサーバーがデータベースに問い合わせます。

その後、データを受け取ったWebアプリケーションサーバーは処理を実行してファイルを動的に生成します。

生成されたファイルはWebサーバーに渡され、WebサーバーからWebブラウザに返されることでブラウザはそのファイルを画面に表示します。

Web3層構造とは

先述したように、Webサーバー(プレゼンテーション層)Webアプリケーションサーバー(アプリケーション層)データベースサーバー(データベース層) という構造をとることが多く、このようなサーバーの構造はWeb3層構造と呼ばれます。

Apacheを利用することで、これらのうちのWebサーバーを簡単に立てることができます!

httpdとは

httpd(HTTP daemon)は、UNIX系OSのWebサーバーソフトのデーモンであり、コマンドです。

※ UNIX系OSとは、LinuxやmacOSなどのUNIXから派生した、UNIXに類似するOSのことです。ApacheなどのWebサーバーソフトもこのUNIX系OSで動いています。

※ デーモン(daemon)とは、UNIX系OSでメインメモリ上にいて、常に特定の機能を提供できるようにスタンバイしているプログラムのことです。

デーモンはOSの起動と同時に起動され、強制終了されない限り、OSが終了するまで稼働し続けます。

ちなみに、Windowsでは常駐プログラムのことを「サービス」と呼びます。

httpdはHTTP通信を受け付けて、リクエストに応じたWebページなどを返します。

Apacheでは、Apache httpdという名前のhttpdが動いています。

apache2ctlコマンドとは

ターミナルなどのコマンドラインからApacheを操作するためのコマンドです。

Apacheのバージョン1ではapachectlコマンドが使われていましたが、バージョン2からは後方互換性をもつapache2ctlコマンドが使われるようになりました。(依然としてapachectlコマンドも使えます。)

よく利用するオプション

startサーバーを起動します。
stop起動しているサーバーを停止します。
restart起動しているサーバーを再起動します。
statusサーバーの現在の状態を出力します。
configtest設定ファイル(apache2.conf)のテストを行います。

インストール方法

さっそく、Linux(Ubuntu)にApacheをインストールしてみましょう!

以下のコマンドを実行することで、簡単にインストールできます。

# 今回は、Apache2(Apacheバージョン2)をインストールします。
# インストールの途中で聞かれるYes/Noに対してYesで回答するプロセスをスルーするために、-yオプションを使用しています。
sudo apt install apache2 -y

インストールできたか確認してみましょう。

# apache2コマンドを使用してます。
apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2022-01-05T14:49:56

今回の例では、Ubuntu 20.04 LTSを使用しているため、2.4.41がインストールされました。

バージョンを指定しない限り、以下のようにそれぞれのUbuntuのバージョンに対応づけられたバージョンのApache2がインストールされます。

UbuntuのバージョンApache2のバージョン
Ubuntu 18.04 LTS2.4.29
Ubuntu 20.04 LTS2.4.41
Ubuntu 21.042.4.46

ドキュメントルート

外部に公開するドキュメントは、ドキュメントルート(document root) というディレクトリ配下に置かれます。

ドキュメントルートは、デフォルトで /var/www/htmlというディレクトリに設定されています。

たとえば、カレントディレクトリにあるtest.htmlを公開したいという場合は以下のようなコマンドを実行します。

sudo mv test.html /var/www/html

まとめ

今回は、Apacheについて解説しました。

Apacheサーバーは世界的に広く使われています。実際に利用してみるのが一番理解が深まります。

問題を解くためには、十分な画面サイズのPC環境をご利用下さい。