📦 XAMPPの基本構造
XAMPPは「Web開発に必要なもの」をまとめて入れられるパッケージです。
機能 | 役割 |
---|---|
✅ Apache | Webサーバー。ブラウザからのリクエストを受け、PHPを実行してHTMLを返す |
✅ MySQL (MariaDB) | データベースサーバー。PHPから接続してデータを保存・検索できる |
⬜ FileZilla FTP Server | FTP接続用。学習用では不要 |
⬜ Mercury Mail Server | メール送信用。今回は不要 |
⬜ Tomcat | Java用アプリサーバー。PHPには不要 |
✅ PHP | サーバーサイド言語。今回の主役! |
⬜ Perl | もう1つの言語。今回は不要 |
✅ phpMyAdmin | ブラウザからDBを操作できる便利ツール |
⬜ Webalizer | アクセス解析ツール。今回は不要 |
⬜ Fake Sendmail | PHPの mail() 関数をローカルで試すためのもの。不要 |
👉 学習用に最低限必要なのは Apache / MySQL / PHP / phpMyAdmin です。
🤔 なぜPHPが動くの?
仕組みをシンプルにすると👇
- ブラウザが
http://localhost/index.php
にアクセス - Apacheがリクエストを受け取る
-
.php
ファイルをPHPに渡して処理させる - PHPがHTMLを生成してApacheに返す
- ApacheがHTMLをブラウザに返す
- ブラウザが描画する
👉 Apacheが橋渡し役になり、PHPを実行 → 結果をブラウザへ返す から動いて見えるわけです。
🔑 MySQLの初期パスワード設定方法
XAMPPでは初期状態で rootユーザーにパスワードが設定されていません。
ローカル開発なら動きますが、セキュリティ的には危険。
設定手順(phpMyAdmin経由)
-
http://localhost/phpmyadmin/
を開く -
上部メニュー「ユーザーアカウント」
-
root@localhost
を選び「特権を編集」 -
「パスワードを変更」で新しいパスワードを入力
-
xampp/phpMyAdmin/config.inc.php
を編集$cfg['Servers'][$i]['password'] = '新しいパスワード';
👉 これで以降はパスワード必須になります。
⚠️ ポート競合の確認と解除方法
症状
- ApacheをStartしても「起動できない」エラー
- MySQLが起動できない
主な原因
- 80番 / 443番 → Apacheが使う。Skype, Teams, IISなどと競合しやすい
- 3306番 → MySQLが使う。他のDBソフトと競合
確認方法(Windows)
コマンドプロンプトで👇
netstat -ano | findstr :80
出力例:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1712
👉 PID 1712 のプロセスが80番を占有している
タスクマネージャーでPID確認 → SkypeやIISなら停止するかポート変更。
解決策
- 競合アプリ側でポート使用を解除(例:Skypeのポート設定OFF)
- またはXAMPPでポート変更(例:8080に変更 →
http://localhost:8080/
でアクセス)
📂 エラーログの場所
「画面に何も出ない」ときはログを見るのが一番速いです。
-
Apache →
xampp/apache/logs/error.log
-
MySQL →
xampp/mysql/data/mysql_error.log
🧩 まとめ
- XAMPPは「Apache+PHP+MySQL+phpMyAdmin」を一括導入できる便利パッケージ
- PHPが動く仕組みは Apache → PHP → HTML → ブラウザ
- rootにパスワードを設定してセキュリティを確保
- ポート競合は
netstat -ano
でPIDを確認 → タスクマネージャーで特定 → 停止 or ポート変更 - 困ったら エラーログを確認
👉 CRUDアプリ開発に入る前に、この辺を押さえておくとトラブルに強くなります💡