🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Apacheとは?Webサーバーの基本と仕組みをわかりやすく解説

Webサイトを作ってみたい!でも、「Webサーバー」や「Apache(アパッチ)」って言葉を聞いただけで、なんだか難しそう…と感じていませんか?大丈夫です!この記事では、Web制作の初心者さんでも「なるほど!」と思えるように、Webサーバーの基本からApacheの仕組みまで、イラストを交えるようなイメージで分かりやすく解説します。専門用語も噛み砕いて説明するので、安心して読み進めてくださいね。

そして、この記事の最大の目標は、みなさんに「Webで公開するってこういうことか!」という「動く」体験をしてもらうことです。コピペで使えるサンプルコードもたくさん用意したので、一緒に手を動かしながらWebサーバーの仕組みをマスターしましょう!


そもそもWebサーバーって何?

まず、Webサーバーの役割から見ていきましょう。一言でいうと、「私たちのリクエストに応じて、Webページのデータを提供してくれるコンピューター」のことです。

レストランに例えると分かりやすいかもしれません。

あなたがブラウザでURLを入力したり、リンクをクリックしたりすると、ブラウザが「このページを見せて!」とWebサーバーにリクエスト(要求)を送ります。Webサーバーはそのリクエストを受け取り、「はい、どうぞ!」とWebページのHTMLファイルや画像などのデータをレスポンス(応答)としてブラウザに返します。この一連の流れのおかげで、私たちはWebサイトを閲覧できるのです。


通信のルール「HTTP」とは?

Webサーバーとブラウザが会話(通信)するためには、お互いが理解できる共通の言語、つまり「ルール」が必要です。そのルールがHTTP (HyperText Transfer Protocol)です。

先ほどのレストランの例えで言うなら、「〇〇をください」という注文の仕方や、「こちらが〇〇です」という料理の提供の仕方が決まっているようなものです。このHTTPというルールに則って、データのやり取りが行われています。

ブラウザのアドレスバーに表示される `http://` や `https://` は、このルールを使って通信しますよ、という宣言なのです。(`https`の`s`はSecureの略で、通信内容を暗号化して安全性を高めたものです)


本題!Apacheとは?

さて、いよいよ本題のApache(アパッチ)です。Apacheとは、世界中で最も広く使われているWebサーバーソフトウェアの一つです。正式名称は「Apache HTTP Server」といいます。

先ほどの例えで言う「店員さん」の役割を、コンピューター上で実際に担ってくれるソフトウェアがApacheだと考えてください。Apacheをコンピューターにインストールすることで、そのコンピューターをWebサーバーとして機能させることができるのです。

Apacheのすごいところ


【実践】ApacheでWebページを公開してみよう!

理論はこれくらいにして、実際に手を動かしてWebページを公開する体験をしてみましょう!ここでは、あなたのパソコンにApacheがすでにインストールされていることを前提に進めます。(インストール方法は次の記事で詳しく解説します!)

ステップ1: 公開するHTMLファイルを作成する

まずは、Webページに表示する内容を記述したHTMLファイルを作成します。とてもシンプルな「こんにちは、世界!」と表示するだけのページです。このファイルを `index.html` という名前で保存しましょう。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>はじめてのApache</title>
</head>
<body>
    <h1>こんにちは、世界!</h1>
    <p>Apache経由でこのページが表示されています。</p>
</body>
</html>

ステップ2: Apacheの設定ファイルを確認・編集する

次に、Apacheに「どこに置いたWebページのファイルを公開すればいいか」を教える必要があります。その設定を行うのが `httpd.conf` というファイルです。

この中で特に重要なのが `DocumentRoot` という設定項目です。ここには、先ほど作成した `index.html` のようなWeb公開用のファイルを置いておくディレクトリ(フォルダ)の場所を指定します。

例えば、`DocumentRoot` が `/usr/local/apache2/htdocs` と設定されていたら、`/usr/local/apache2/htdocs` というディレクトリの中に `index.html` を置くことで、Webブラウザからアクセスできるようになります。

以下は `httpd.conf` の設定例の一部です。自分の環境に合わせてパスを読み替えてください。※このコードは説明用です。いきなり自分の設定ファイルを書き換えないでくださいね。

# Listen: サーバーがリクエストを待ち受けるポート番号
# 通常、HTTPは80番ポートを使用します
Listen 80

# DocumentRoot: Webコンテンツを置くディレクトリのパス
# このディレクトリにHTMLファイルなどを置きます
# (Windowsの場合は "C:/Apache24/htdocs" のようになります)
DocumentRoot "/usr/local/apache2/htdocs"

# DocumentRootで指定したディレクトリに対する設定
<Directory "/usr/local/apache2/htdocs">
    # .htaccessファイルによる設定の上書きを許可する
    AllowOverride All
    # 全てのリクエストを許可する
    Require all granted
</Directory>

【重要】 `httpd.conf` ファイルを編集した後は、必ずApacheを再起動して設定を反映させる必要があります。


【応用例】`.htaccess`でApacheをさらに使いこなす

Apacheの強力な機能の一つに `.htaccess` (ドットエイチティーアクセス) ファイルがあります。通常、サーバー全体の設定は `httpd.conf` で行いますが、特定のディレクトリの中だけで有効なルールを追加したい場合に、この `.htaccess` ファイルが役立ちます。

Webサイトを運用していると、「wwwが付いていないURLを、www付きに統一したい」「特定のページにパスワードをかけたい」といった要望が出てきます。そんな時に `.htaccess` が大活躍します。

応用例1: URLを正規化する(wwwありに統一)

SEO(検索エンジン最適化)の観点からも、`example.com` と `www.example.com` のようにURLが分かれているのは好ましくありません。これを `www.example.com` に統一(リダイレクト)する設定です。以下の内容で `.htaccess` ファイルを作成し、`DocumentRoot` に設置します。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

応用例2: ディレクトリにパスワードをかける(ベーシック認証)

会員専用ページなど、特定のディレクトリにアクセス制限をかけたい場合にベーシック認証を使います。まず、パスワードをかけるディレクトリに以下の内容で `.htaccess` ファイルを設置します。

AuthType Basic
AuthName "Secret Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

次に、許可するユーザー名とパスワードを記録した `.htpasswd` ファイルを作成します。`/path/to/` の部分はサーバー上の適切なパスを指定してください。このファイルは、Webからアクセスできない場所に置くのが鉄則です。

# "myuser" というユーザー名と、暗号化されたパスワードの例
myuser:$apr1$abcdefg$hijklmnopqrstuvwxyz.

※ `.htpasswd` ファイルは専門のコマンドやWebツールで生成するのが一般的です。


応用例3: 特定のIPアドレスからのアクセスを拒否する

特定のIPアドレスからの迷惑なアクセスをブロックしたい場合の設定です。拒否したいIPアドレスを指定します。

Require all granted
Require not ip 192.168.1.100
Require not ip 10.0.0.0/8

気をつけるべき点

Apacheは非常に強力ですが、設定を間違えるとセキュリティ上のリスクが生まれたり、サイトが表示されなくなったりすることもあります。


まとめ

この記事では、Webサーバーの基本的な仕組みから、代表的なWebサーバーソフトウェアであるApacheの役割、そして簡単なWebページを公開する手順や応用例までを解説しました。

最初は難しく感じるかもしれませんが、実際に手を動かして `index.html` をブラウザで表示できた時の感動は、Web制作の楽しさを実感する第一歩です。Apacheは、あなたが作ったWebサイトを世界中の人々に届けるための、頼もしいパートナーです。ぜひ、この記事をきっかけにWebサーバーの知識を深め、あなたのクリエイティブな活動に役立ててください。

次のステップとして、まずは自分のパソコンにApacheをインストールしてみましょう!OS別の詳しいインストール方法については、以下の記事で解説しています。

2. 【OS別】ApacheをWindows / macOS / Linuxにインストールする方法