AWS1-5 LAMP環境構築(1)

🌐 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とは?

項目構成要素役割
LLinuxOS(Amazon Linux 2)
AApacheWebサーバー(HTTP通信を処理)
MMySQL/MariaDBデータベース
PPHP動的ページを生成するスクリプト言語

📘 講師コメント:

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番ポート)を開放済みか確認

  1. AWSマネジメントコンソール → EC2 → 「インスタンス」
  2. 対象インスタンスを選択 → 下部「セキュリティ」タブ
  3. 「インバウンドルール」→ HTTP (80) が「0.0.0.0/0」に設定されていることを確認。

📘 講師コメント:

もし80番が開いていない場合、ブラウザからアクセスしても「接続拒否」になります。
SSHだけでなく、HTTPも明示的に許可が必要です。


🧾 6. Apacheのテストページ確認

🧪 実習③:ブラウザで確認

  1. 自分のEC2インスタンスの パブリックIPv4アドレス をコピー
     例:http://13.115.240.125/
  2. ブラウザでアクセス

✅ 成功時表示:



🧰 トラブル対応

症状対処法
ページが開かないセキュリティグループで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
DocumentRootWeb公開ディレクトリ/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 ErrorHTMLの文法ミス or .htaccess不備
起動エラーerror_log の内容確認(ポート競合や設定ミス)

🧱 11. まとめ

学びのポイント内容
ApacheとはWebサーバーの中心的存在。LAMPの「A」
Web公開ディレクトリ/var/www/html が初期設定
httpd.confApache全体の挙動を決める設定ファイル
サービス管理systemctl start/enable/reload が基本操作
次のステップPHPとMySQLを組み込み、WordPressを動かす(Day2へ)