Apache(アパッチ)とは世界中で使用されているWebサーバーソフトウェア(HTTPサーバー)です。サーバーを構築するにはWebサーバーソフトウェアが必要です。ここでは、Webサーバーの仕組みと人気のサーバーソフトについても分かりやすく解説します。
目次
Apacheとは(アパッチ)とは
アメリカのインディアン部族とは、特に関連はありません。20年ほど前に開発された、21世紀ITの基盤を支える一つの技術を指しています。それがApacheというWebサーバーソフトウェアです。W3Techsによれば、2017年4月時点で全世界の約50%のシェアを占め、最も利用されています。
インターネット上で企業や官公庁の公式サイトで情報を入手したり、動画やSNSを利用したりする場合には、必ずWebサーバーソフトウェアのお世話になります。そのうち半数でApacheが稼働しています。一般的には、知られざる事実ではないでしょうか。
今回の記事では概略を整理した後に、Linux OSへのインストールと、基本的な設定方法の解説をします。
Apacheの特徴
世界中で使用されている主な理由
- CMS(Contents Management System)を利用する際に、比較的簡単な設定で済む
- 公式非公式を問わず技術情報が膨大にあるため、トラブル時でも安心
- レンタルサーバープランにあらかじめ組み込まれている場合が多い
- 公開ページを更に高速化表示する対策が行われている
- セキュリティ対策が随時更新されて安心
主な特徴
- オープンソースソフトウェア(OSS)で、無償で誰でも利用可能
- 約20年間OSSとして公開され、バージョンアップした結果により信頼性が高い
- CMSを動かすためのPHPやデータベースと連携がしやすい
- モジュール(部品または要素)により基本機能を拡張可能
- LinuxだけでなくWindowsなど複数のサーバーOS上で利用可能
業界最大の転送量!WebサーバーソフトApacheを安定運用できる快適な共用サーバー
転送量1日200GBと国内最大の転送量はカゴヤ共有サーバープラン!WebサーバーソフトApacheがはじめからインストールされています。またWAF/IPSなどが標準搭載されており高セキュリティ。コスパ抜群のプランです。月額880円~
Webサーバーの仕組み
ここまで、WebサーバーソフトウェアであるApacheを中心に解説してきました。それでは、実際にWebサイトの閲覧などを行うためには他に何が必要でしょうか。この点を明らかにしたうえで、こちらの章ではWebサーバーの役割をあらためて整理したいと思います。
そもそも、ふだんお使いのPCでもサーバーでも、ソフトウェア(中身)だけでは無用の長物です。中身を収納し、動かすためのハードウェア(箱)も同時に用意しておかなければなりません。
Webサーバーの役割
インターネットを利用していると、多くの種類のサーバーと呼ばれる、箱と中身のセットのお世話になります。その中で一番身近で、かつ重要なサーバーがWebサーバーと言えるのではないでしょうか。それでは、その基本的な役割についてまとめてみたいと思います。
- Webサイトの閲覧者によるリクエストに応じて、Webサーバーに保管中のデータを表示する
- CMSの場合などでは、データベースサーバーとの間に入り、リクエストに応答する
- 必要に応じて、Webサーバー内の保管データを保護して、アクセス制限を行う
- Webサイトにドメインでアクセスできるように、別の専用サーバー(DNSサーバー)と連携をとる
- Webサイトの閲覧者が間違ったリクエストを送った場合は、それが間違った指示であることを伝えてリクエストのやりなおしを促す
プロトコル(HTTP)
上記で、Webサイトの閲覧者がWebサーバーにリクエストするときに使用する指示方法(手順)を、HTTPプロトコルと呼んでいます。この場合HTTPとは、Hypertext Transfer Protocolの略となっています。具体的には、Webブラウザで入力するWebサイトのURLアドレスの一部で、冒頭のhttpの部分をさしています。
なお、ITではプロトコルには通信手順やルールの意味が込められています。意識するかしないかにかかわらず、利用者全員がこのプロトコルを守ることでインターネットの利用が促進されています。
Apacheのインストールと初期設定
それでは、いよいよWebサーバー公開する作業内容の説明に移ります。大まかな流れは以下の通りです。
- インストール
- 基本設定
- モジュールの導入
Apacheの導入には幾つかの方法があります。今回は、Linux OSの中でも人気のUbuntuを用いて、最新バージョン17.04にて説明します。
作業にあたり、Tera Term Proなどのターミナルエミュレーターを起動させ、該当のサーバーにSSHで接続してください。
なお、サーバーがWindowsの場合には、公式サイトの該当ページ(Using Apache HTTP Server on Microsoft Windows)をご参照ください。
(1) インストール
sudo apt -y install apache2とコマンド入力をしてください。自動的に関連するパッケージもインストールされます。
(2) 基本設定
vi /etc/apache2/conf-enabled/security.confで、該当ファイルを編集します。
セキュリティ確保のためエラーページなどで、サーバー情報の公開を必要最小限にします。25行目あたりのServerTokensをOSより、Prodに変更します。また35行目あたりのServerSignatureをOnより、Offに変更します。その他必要に応じて該当ファイルを更新してください。
上記の更新を反映させるために、sudo systemctl restart apache2 とコマンド入力をしてApacheを再起動します。
この段階で、Apacheをインストールした場所(URLやIPアドレス)にアクセスすると、テストページが表示されます。これでApacheが稼働していることがわかります。なお、このファイルは本番では不要のため、Webサイトの正式公開前に削除してください。
(3) モジュールの導入
公式サイトによれば、Apacheバージョン 2.4には、120以上ものモジュールが用意されていて、基本機能を拡張可能です。今回は代表的なモジュールであるCGIとPHPのスクリプト2例を紹介します。
CGI スクリプト
sudo apt -y install perlとコマンド入力をして、Perlをインストールしてください。
次に、sudo a2enmod cgiとコマンド入力をして、CGI モジュールを有効 にします。上記の更新を反映させるために、sudo systemctl restart apache2 とコマンド入力をして、Apacheを再起動します。
PHP スクリプト
sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstringとコマンド入力をして、PHPをインストールしてください。
次に、sudo a2enconf php7.0-cgiとコマンド入力をして、PHP モジュールを有効にします。
さらに、vi /etc/php/7.0/apache2/php.iniとコマンド入力をして、以下のように編集します。
924行目あたりのコメントを解除して、date.timezone = “Asia/Tokyo”にします。上記の更新を反映させるためにsudo systemctl restart apache2 とコマンド入力をして、Apacheを再起動します。
【厳選】Apache&人気のサーバーソフト比較表
すでにご紹介したW3Techsの調査では、全世界でのWebサーバーのシェア推移が取り上げられています。この中で、上位3位のWebサーバーソフトウェアを比較したのが、下記の表です。
Apache | Nginx | Microsoft-IIS | |
---|---|---|---|
ポイント | 安定性・豊富な情報 | 高速性 | Windowsサーバー専用 |
全世界のシェア | 50% | 33% | 11% |
対応OS | Linux / Windowsなど | Linux / Windowsなど | Windows |
主な機能 | モジュールによる機能追加 | リバースプロキシ、負荷分散、FastCGIサポート | FTP、アプリケーション開発(.NET ASP.NETなど) |
難易度 | 中程度 | やや困難 | 中程度 |
公式サイト | (公式サイト) | (公式サイト) | (公式サイト) |
公開年 | 1995年 | 2004年 | 1994年 |
Webサーバーのソフトを選んで、サーバーを構築してみましょう!
ここまでいかがでしたか。Webサーバーソフトウェアの重要な役割はもちろん、Apacheの優れた機能そして最近の傾向をまとめました。またApacheを実際にインストールする方法を整理することにより、作業のイメージをつかむことができましたでしょうか。
カゴヤ・ジャパンの場合、共用サーバープランなどでは最初からApacheはインストールされています。一方VPSなどのプランでは、Webサーバーソフトウェアのインストールから始める必要があります。