🧩 LAMP環境構築(2)
― MySQLインストールと初期設定/PHPインストールと動作確認 ―
🎯 学習目的
- EC2(Amazon Linux 2) に MySQL(MariaDB) を導入し、データベースを利用できるようにする
- PHP を導入し、Apacheとの連携(動的ページ実行)を確認する
- 次回の WordPress 導入に向けた下地を完成させる
📘 1. LAMP構成の全体像(復習)
+----------------------+
| WordPress (PHP) |
|----------------------|
| PHP 7.x / 8.x |
|----------------------|
| Apache (httpd) |
|----------------------|
| MySQL (MariaDB) |
|----------------------|
| Amazon Linux 2 |
+----------------------+
🧾 2. MySQL(MariaDB)の導入
🧩 MariaDBとは
Amazon Linux 2 では、MySQL互換の MariaDB が標準パッケージとして提供されています。
(コマンドやSQL構文はMySQLとほぼ同じ)
🧪 実習①:インストール
# 管理者権限に昇格
sudo su
# パッケージ情報更新
yum update -y
# MariaDB(MySQL互換)をインストール
yum install -y mariadb-server mariadb
# インストール確認
mysql --version
出力例:
mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64)
🧪 実習②:MySQLサービスの起動と自動起動設定
# サービス起動
systemctl start mariadb
# 状態確認
systemctl status mariadb
出力例:
Active: active (running)
# 自動起動設定
systemctl enable mariadb
⚙️ 3. 初期設定(セキュリティ・rootパスワード)
初回利用時は「セキュリティ設定スクリプト」を実行して不要なアカウントを削除します。
🧪 実習③:初期設定スクリプトの実行
mysql_secure_installation
対話形式で進行します。
以下は推奨設定(講師が実際に画面で見せながら説明):
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password:<= カーソル動かないので、注意深く pswd とかにしておく(研修なので)
Re-enter new password:<= カーソル動かないので、注意深く pswd とかにしておく(研修なので)
| 質問 | 回答例 | 説明 |
|---|---|---|
| Enter current password for root | Enter(未設定なので空) | 初回はパスワードなし |
| Set root password? | Y | パスワード設定開始 |
| New password | 任意(例:Passw0rd!) | 強度のあるパスワード推奨 |
| Remove anonymous users? | Y | 匿名ユーザー削除 |
| Disallow root login remotely? | Y | rootのリモート接続禁止 |
| Remove test database and access to it? | Y | テストDB削除 |
| Reload privilege tables now? | Y | 設定を反映 |
出力例:
Thanks for using MariaDB!
⚙️ root パスワードでログイン確認
mysql -u root -p
(パスワード入力後)
出力例:
Welcome to the MariaDB monitor.
MariaDB [(none)]>
👉 ここまで確認できればデータベースの利用準備完了です。
🧪 実習④:テストデータベース作成
CREATE DATABASE testdb;
SHOW DATABASES;
EXIT;
出力例:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| testdb |
+--------------------+
📘 講師コメント:
WordPress 導入時にはここに「wordpress」というDBを作成し、ユーザーを設定します。
今回はまずコマンド操作に慣れておきましょう。
🧾 4. PHP の導入
🧩 PHPとは
サーバー上で動作するスクリプト言語。
WordPress や多くのWebアプリは PHP で作られています。
🧪 実習⑤:PHPインストール
Amazon Linux 2 では PHP8 系を使用可能です。
(WordPress要件を満たす)
# PHP8関連パッケージを導入
sudo amazon-linux-extras enable php8.2
sudo yum clean metadata
sudo yum install -y php php-cli php-mysqlnd php-fpm php-json php-mbstring
※ php-mysqlnd は PHP と MySQL を連携させるモジュールです。
🧪 実習⑥:PHPのバージョン確認
php -v
出力例:
PHP 8.2.12 (cli) (built: Oct 2024)
🧱 5. Apache と PHP の連携設定
Apache で PHP を動かすために、
モジュールが自動で設定されているか確認します。
sudo nano /etc/httpd/conf/httpd.conf
確認:
AddType application/x-httpd-php .php
がコメントアウトされていれば有効化。
(ない場合は追記でもOK)
🧪 実習⑦:Apache再起動
sudo systemctl restart httpd
🧪 6. PHP動作テスト(phpinfo)
テスト用ファイル作成
cd /var/www/html
sudo nano info.php
内容:
<?php
phpinfo();
?>
保存後、ブラウザで確認:
http://<EC2のパブリックIP>/info.php
✅ 成功時表示:「PHP Version」「Server API」「Loaded Modules」などの情報画面。
🧩 セキュリティ注意
このページはサーバーの内部情報を表示するため、
動作確認後は必ず削除 します。
sudo rm /var/www/html/info.php
⚙️ 7. MySQL + PHP 連携テスト(オプション実習)
WordPress接続前に、PHPがDBに接続できるか確認します。
sudo nano /var/www/html/dbtest.php
内容:
<?php
$servername = "localhost";
$username = "root";
$password = "Passw0rd!"; // 設定したrootパスワード
try {
$conn = new PDO("mysql:host=$servername;dbname=testdb", $username, $password);
echo "✅ MySQL connection successful!";
} catch(PDOException $e) {
echo "❌ Connection failed: " . $e->getMessage();
}
?>
ブラウザで表示:
http://<EC2のパブリックIP>/dbtest.php
✅ 成功時:
✅ MySQL connection successful!
❌ 失敗時:
Connection failed: Access denied for user 'root'@'localhost'
(パスワード/DB名を確認)
🧰 8. トラブル対応集
| 症状 | 対処法 |
|---|---|
Can't connect to local MySQL server | systemctl start mariadb でDB起動確認 |
Access denied for user | mysql_secure_installationで設定したパスワードが正しいか |
| PHPファイルがダウンロードされる | ApacheがPHPモジュールを認識していない → yum install php php-mysqlnd 再確認 |
| phpinfo画面が真っ白 | Apache再起動漏れ or SELinux(Amazon Linuxでは通常OFF) |
🧾 9. 実習チェックリスト
| 項目 | 確認内容 |
|---|---|
| MariaDBインストール完了 | mysql --version で確認 |
| DB起動 | systemctl status mariadb が active |
| rootパスワード設定済み | mysql -u root -p ログイン確認 |
| PHP導入 | php -v バージョン確認 |
| Apacheとの連携 | /info.php 表示成功 |
| DB接続テスト | /dbtest.php 成功メッセージ表示 |
💡 10. 講師補足ポイント
- MySQL の root パスワードは 再発行可能(
sudo mysql_secure_installation再実行) - PHPモジュールの一覧確認:
php -m - Apache と PHP の関係を「動的 vs 静的」ページの比較で説明すると理解が深まる。
🧱 11. まとめ
| 学びのポイント | 内容 |
|---|---|
| MariaDB(MySQL互換) | AWSで安定的に使えるデータベース |
| PHP | Webアプリに動的処理を与える言語 |
| LAMP完成 | Apache + MySQL + PHP でWordPressを動かす土台完成 |
| 次のステップ | WordPressの手動インストール(Day2) |