🌐 LAMP環境構築(1)
― Apacheインストールとテストページ表示、httpd設定 ―
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/ec2-lamp-amazon-linux-2023.html
🎯 学習目的
AWS上のEC2(Amazon Linux 2)に
Apache Webサーバー を導入し、
ブラウザから「It works!」ページを表示できるようにする。
🗺️ 1. LAMPとは?
| 項目 | 構成要素 | 役割 |
|---|---|---|
| L | Linux | OS(Amazon Linux 2) |
| A | Apache | Webサーバー(HTTP通信を処理) |
| M | MySQL/MariaDB | データベース |
| P | PHP | 動的ページを生成するスクリプト言語 |
📘 講師コメント:
Apache は Web サイトの “玄関口” です。
HTML・画像・PHPファイルなどをクライアント(ブラウザ)へ配信します。
⚙️ 2. 事前準備
✅ 事前確認コマンド(Amazon Linux 2)
# 現在のOSを確認
cat /etc/os-release
# 接続ユーザー確認
whoami
出力例:
NAME="Amazon Linux"
VERSION="2"
ec2-user
🧰 3. Apache(httpd)のインストール
🧩 Apacheとは
- 正式名称:Apache HTTP Server
- 世界で最も利用されているオープンソースWebサーバー
- AWSではパッケージ名「httpd」で管理される
🧪 実習①:インストール
実際の手順は、Amazonサイトに従います。
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/ec2-lamp-amazon-linux-2023.html#prepare-lamp-server-2023
手順:
# root権限に昇格(sudo利用)
sudo su
# パッケージ情報を更新
yum update -y
# Apacheをインストール
yum install -y httpd
# インストール確認
httpd -v
出力例:
Server version: Apache/2.4.57 ()
Server built: Jul 25 2023
Amazonサイト:コマンド
🧩 Apacheの基本ディレクトリ構成
| パス | 用途 |
|---|---|
/etc/httpd/ | 設定ファイル一式 |
/etc/httpd/conf/httpd.conf | メイン設定ファイル |
/var/www/html/ | Web公開ディレクトリ(DocumentRoot) |
/var/log/httpd/ | ログ(access_log / error_log) |
🚀 4. Apacheの起動と動作確認
🧪 実習②:Apache起動と自動起動設定
# Apacheを起動
sudo systemctl start httpd
# 起動状態を確認
sudo systemctl status httpd
出力例:
Active: active (running)
# 再起動後も自動起動するように設定
sudo systemctl enable httpd
🧩 確認:プロセスとポート
# Apacheプロセス確認
ps aux | grep httpd
# 80番ポートが開いているか確認
sudo netstat -tlnp | grep :80
🌍 5. ファイアウォール・セキュリティ設定
AWSでは、インスタンスの「セキュリティグループ」で通信を制御します。
✅ HTTP(80番ポート)を開放済みか確認
- AWSマネジメントコンソール → EC2 → 「インスタンス」
- 対象インスタンスを選択 → 下部「セキュリティ」タブ
- 「インバウンドルール」→
HTTP (80)が「0.0.0.0/0」に設定されていることを確認。
📘 講師コメント:
もし80番が開いていない場合、ブラウザからアクセスしても「接続拒否」になります。
SSHだけでなく、HTTPも明示的に許可が必要です。
🧾 6. Apacheのテストページ確認
🧪 実習③:ブラウザで確認
- 自分のEC2インスタンスの パブリックIPv4アドレス をコピー
例:http://13.115.240.125/ - ブラウザでアクセス
✅ 成功時表示:


🧰 トラブル対応
| 症状 | 対処法 |
|---|---|
| ページが開かない | セキュリティグループでHTTP(80)が許可されているか確認 |
| 「Connection refused」 | Apacheサービスが起動していない(sudo systemctl start httpd) |
| 「Forbidden」 | ファイル権限が間違っている(後述のchmod確認) |
🧱 7. Web公開ディレクトリの確認と操作
🧩 Web公開ディレクトリとは
Apacheの設定ファイル /etc/httpd/conf/httpd.conf の中に記載されています。
grep DocumentRoot /etc/httpd/conf/httpd.conf
出力例:
DocumentRoot "/var/www/html"
つまり、
👉 /var/www/html/ にあるファイルがブラウザに公開される。
🧪 実習④:独自のHTMLを配置してみよう
# ディレクトリ移動
cd /var/www/html
# 簡単なHTMLファイルを作成
sudo nano index.html
内容:
<!DOCTYPE html>
<html>
<head><title>My AWS Test Page</title></head>
<body>
<h1>Hello from Apache on AWS!</h1>
<p>This page is served by Amazon Linux 2.</p>
</body>
</html>
保存 → 閲覧用ブラウザを更新。
✅ 表示内容が変わっていればOK!

🧩 ファイル権限確認
ls -l /var/www/html/
出力例:
-rw-r--r-- 1 root root 1200 Nov 11 15:30 index.html
問題ない場合はOKですが、もし他ユーザーが編集できない場合は:
sudo chown ec2-user:ec2-user /var/www/html/index.html
⚙️ 8. httpd 設定の基本構造
🧩 設定ファイルの場所
/etc/httpd/conf/httpd.conf
主要設定ポイント:
| 設定項目 | 意味 | 例 |
|---|---|---|
ServerRoot | 設定ファイルの格納ディレクトリ | /etc/httpd |
DocumentRoot | Web公開ディレクトリ | /var/www/html |
<Directory> | ディレクトリ別設定 | <Directory "/var/www/html"> |
Listen | 待ち受けポート番号 | Listen 80 |
ServerAdmin | 管理者メールアドレス | webmaster@localhost |
ErrorLog | エラーログ出力先 | /var/log/httpd/error_log |
🧪 実習⑤:設定ファイルを覗いてみよう
sudo nano /etc/httpd/conf/httpd.conf
確認ポイント:
DocumentRoot "/var/www/html"<Directory "/var/www/html">のブロック内にAllowOverride Noneがあること
🔎 変更しない範囲で“読むだけ”実習(編集は次章で行う)
🧩 設定ファイルを変更した場合の再読み込み
sudo systemctl reload httpd
※再起動(restart)との違い:
設定のみ再読込するため、サービス中断が短時間。
🧰 ログ確認(トラブル調査の基本)
# アクセスログ
sudo tail -n 10 /var/log/httpd/access_log
# エラーログ
sudo tail -n 10 /var/log/httpd/error_log
📘 講師コメント:
何かうまくいかない時は、必ず「エラーログ」を確認する習慣を。
ここを読めるようになると、運用技術者として一歩進めます。
🧾 9. 実習結果の確認
| チェック項目 | 確認内容 |
|---|---|
| Apacheインストール | httpd -v でバージョン確認 |
| サービス起動 | systemctl status httpd が active |
| ブラウザ表示 | 「It works!」ページ or 自作HTML表示 |
| DocumentRoot理解 | /var/www/html に配置したファイルが表示された |
| ログ確認 | /var/log/httpd/ で動作確認 |
⚠️ 10. トラブル対応まとめ
| 症状 | 確認/対処 |
|---|---|
| ページが表示されない | 80番ポートの開放、Apache起動確認 |
| 403 Forbidden | ファイルの所有者/権限設定を確認 |
| 500 Internal Server Error | HTMLの文法ミス or .htaccess不備 |
| 起動エラー | error_log の内容確認(ポート競合や設定ミス) |
🧱 11. まとめ
| 学びのポイント | 内容 |
|---|---|
| Apacheとは | Webサーバーの中心的存在。LAMPの「A」 |
| Web公開ディレクトリ | /var/www/html が初期設定 |
| httpd.conf | Apache全体の挙動を決める設定ファイル |
| サービス管理 | systemctl start/enable/reload が基本操作 |
| 次のステップ | PHPとMySQLを組み込み、WordPressを動かす(Day2へ) |