【連載第2回】Webサーバー「Apache」を構築しよう!世界中からアクセスできる仕組み作り

LAMP講座

【連載第2回】Webサーバー「Apache」を構築しよう!世界中からアクセスできる仕組み作り

未経験からWebアプリ開発を目指す「AlmaLinux 9とLAMP環境で作る!Webアプリ開発完全ロードマップ(全12回)」の第2回です。

前回は、真っさらなVPSを契約し、黒い画面(SSH)で接続するところまで完了しました。
しかし、今のままでは、ブラウザでIPアドレスを入力しても「接続できません」というエラーが出るだけです。

今回は、サーバー構築の主役であるWebサーバーソフト「Apache(アパッチ)」をインストールし、あなたのサーバーを「インターネット越しに見られる状態」に進化させます。

コウ君

先生!前回の宿題(dnf update)、ちゃんと終わらせてきました!
今日はいよいよホームページが見られるようになるんですね?

リナックス先生

えらいわね、コウ君。
そうよ。今日は「黒い画面」で行った操作が、初めて「目に見える形」になる一番楽しい回よ。
でも、ここには初心者が必ずハマる「ファイアウォールの罠」があるから、慎重に進めていきましょう。

本講座のカリキュラム(全12回)

現在地は第2回です。

  1. サーバー準備編:なぜVPSが必要?AlmaLinux 9の初期設定とSSH接続
  2. 【今回】Webサーバー編:Apache(httpd)のインストールとファイアウォール設定
  3. データベース編:MariaDB(MySQL)のインストールとセキュリティ設定
  4. プログラミング言語編:PHP 8.xの導入と設定ファイルのチューニング
  5. 権限・パーミッション編:LinuxでWebサイトを公開するための「所有者」の概念
  6. 接続テスト編:PHPからデータベース(DB)に接続してみよう
  7. アプリ開発①:HTML/CSSで掲示板の「見た目」を作る
  8. アプリ開発③:投稿機能(Create)の実装とデータの保存
  9. アプリ開発③:一覧表示機能(Read)と画像表示の仕組み
  10. アプリ開発④:編集・削除機能(Update/Delete)の実装
  11. セキュリティ編:XSSやSQLインジェクション対策の基礎
  12. 公開編:独自ドメイン設定と無料SSL(Let’s Encrypt)でHTTPS化

Webサーバー「Apache」とは?

作業を始める前に、今回インストールするソフトについて理解しておきましょう。

Apache HTTP Server(アパッチ)は、世界中で最も歴史があり、信頼されているWebサーバーソフトウェアの一つです。
Linuxの世界では、パッケージ名が httpd (HyperText Transfer Protocol Daemon)となっていることが多いので注意してください。

Webサーバーの役割

あなたのスマホ(ブラウザ)とサーバーは、以下のような会話をしています。

  • スマホ: 「ねえ、このURLのページを見せて!(リクエスト)」
  • サーバー: 「OK、ファイルを探して送るね。(レスポンス)」

この「リクエストを受け取って、ファイルを返却する係」がWebサーバーソフト(Apache)です。
これが入っていないサーバーは、ただの「データの倉庫」であり、外からは中身を見ることができません。

手順1:Apacheをインストールする

それではSSHでVPSに接続し、以下のコマンドを実行しましょう。
(※前回同様、コピペではなく手で入力すると覚えが早いですよ!)

dnf install httpd -y

Complete! と表示されればインストール完了です。
拍子抜けするほど簡単ですね。

手順2:Apacheを起動し、自動起動設定をする

コウ君

インストールできたので、もうブラウザで見れますか?

リナックス先生

まだよ。
Linuxでは、ソフトをインストールしただけでは「電源OFF(停止中)」の状態なの。
「起動(start)」と、サーバーが再起動しても勝手に立ち上がる「自動起動(enable)」の2つをやる必要があるわ。

起動と自動起動のコマンド

以下の2行を順番に実行してください。

systemctl start httpd
systemctl enable httpd

コマンド解説:

  • systemctl start httpd : 今すぐApacheを起動します。
  • systemctl enable httpd : サーバーを再起動したときに、Apacheも自動で立ち上がるように設定します(これをしておかないと、メンテなどで再起動した後にWebサイトが消えます)。

正しく動いているか、状態を確認してみましょう。

systemctl status httpd

緑色の文字で Active: active (running) と表示されていれば成功です。
(確認画面から出るには、キーボードの q を押してください)

手順3:ファイアウォール(firewalld)の設定

さて、ここが最大の難関です。
実は、Apacheを起動しただけでは、まだ外部(あなたのPCやスマホ)からはアクセスできません。

コウ君

えっ?なんでですか?
ソフトは動いてるのに?

リナックス先生

Linuxには「ファイアウォール」という強力な壁があるからよ。
初期状態では、セキュリティのために「SSH(22番)」以外のすべての穴が塞がれているの。
Webサイトを見るための「HTTP(80番)」という穴を開けてあげる必要があるわ。

Webアクセス(http/https)を許可する

AlmaLinuxでは firewall-cmd というコマンドを使います。
以下のコマンドを入力してください。

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

コマンド解説:

  • --add-service=http : Web通信(HTTP)を通す許可を与えます。
  • --permanent : 永続化(再起動しても設定を忘れないようにする)オプションです。
  • --reload : 設定を変更したら、必ずリロードして反映させる必要があります。

success と表示されれば、壁に穴が空きました!

手順4:ブラウザでアクセスしてみよう!

お疲れ様でした。いよいよ確認の時間です。

ChromeやEdgeなどのブラウザを開き、アドレスバーにあなたのVPSのIPアドレスを入力してEnterを押してください。
(例: http://123.456.78.90

以下のような画面が表示されましたか?

AlmaLinux Test Page
This page is used to test the proper operation of the HTTP server…

コウ君

出ましたーー!!
これ、僕のサーバーが表示されてるってことですよね?
なんか感動です!

リナックス先生

おめでとう!
これであなたのVPSは、世界中どこからでもアクセスできる「Webサーバー」になったわ。
もし表示されない場合は、IPアドレスが間違っていないか、さっきのファイアウォールの設定(reloadしたか?)を見直してみてね。

おまけ:自分の書いた文字を表示させてみよう

テストページだけじゃ味気ないので、自分で書いたHTMLファイルを表示させてみましょう。
Apacheは、/var/www/html/ という場所にあるファイルを表示するルールになっています。

以下のコマンドをコピペして実行してみてください。

echo "<h1>Hello World! This is my server!</h1>" > /var/www/html/index.html

これは、index.html というファイルを新しく作り、その中に「Hello World…」という文字を書き込むコマンドです。
ブラウザを「再読み込み(リロード)」してみてください。

画面の文字が変わっていれば大成功です!

次回予告:データベース(MariaDB)を作ろう

今回は、Webサーバー(Apache)を構築し、静的なページを表示できるようにしました。
しかし、Instagramのような投稿サイトを作るには、投稿された写真や文章を保存しておく「データベース」が必要です。

次回は、LAMPの「M」にあたる「MariaDB(マリア・ディー・ビー)」のインストールと設定を行います。
MySQLと何が違うの?という点も解説しますのでお楽しみに。

リナックス先生

まだVPSを契約していない人は、ここまでは数分で追いつけるから、今のうちに用意しておいてね。
次回から少しずつコマンドが複雑になっていくから、置いていかれないように!

▼この講座で使用している推奨VPS

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント