| この記事の要点 |
|
XAMPP とは
XAMPP(ザンプ)は、Web 開発に必要なソフトウェアをワンクリックでインストールできる無料のバンドル製品です。名前は次の頭文字に由来します:
- X: Cross-platform(Windows / macOS / Linux)
- A: Apache HTTP Server
- M: MariaDB(旧 MySQL)
- P: PHP
- P: Perl
Apache Friends が開発・配布しており、商用利用も無料です。phpMyAdmin / OpenSSL / Tomcat(追加)/ FileZilla Server / Mercury Mail なども同梱されます。
インストール手順(Windows)
- apachefriends.org から PHP バージョン別 (8.2 / 8.1 / 7.4 等) インストーラを取得
- 管理者として実行。インストール先は
C:\xampp(パスにスペースを含めない) - コンポーネント選択画面で必要なものだけチェック(Tomcat / Mercury は不要なら外す)
- 完了後、XAMPP Control Panel を起動して Apache と MySQL の「Start」をクリック
- ブラウザで
http://localhost/にアクセス → ダッシュボードが出れば成功
コントロールパネルの使い方
| モジュール | 役割 | 主なポート |
|---|---|---|
| Apache | Web サーバ。htdocs/ 配下を公開 | 80 / 443 |
| MySQL (MariaDB) | データベース | 3306 |
| FileZilla | FTP サーバ | 21 |
| Mercury | SMTP / POP3 メールサーバ | 25 / 110 |
| Tomcat | Java サーブレット | 8080 |
ポート競合の解消
もっとも多いトラブルがポート 80(Apache)と 3306(MySQL)の衝突です。Skype 旧版 / IIS / 既存 MySQL が掴んでいると Apache が起動できません。
# C:\xampp\apache\conf\httpd.conf を編集
Listen 8080
ServerName localhost:8080
# C:\xampp\apache\conf\extra\httpd-ssl.conf
Listen 8443
<VirtualHost _default_:8443># C:\xampp\mysql\bin\my.ini を編集
[client]
port = 3307
[mysqld]
port = 3307
変更後、コントロールパネルの「Config」→「Service and Port Settings」でも 8080 / 3307 を指定し、再起動します。
競合元を調べるコマンド:
# Windows: 80 番を使っているプロセス
netstat -ano | findstr :80
tasklist /FI "PID eq 4"
# Mac/Linux
sudo lsof -i :80
sudo lsof -i :3306
htdocs ディレクトリ
C:\xampp\htdocs\(Mac は /Applications/XAMPP/htdocs/)が Web の公開ディレクトリです。ここにファイルを置くと http://localhost/ から見えます。
<?php
// C:\xampp\htdocs\hello.php
echo "Hello XAMPP! PHP " . phpversion();
// アクセス: http://localhost/hello.php
プロジェクトごとに htdocs/myapp/ のようにサブディレクトリを切るか、VirtualHost で複数サイトを管理します。
phpMyAdmin と DB 操作
MySQL を起動して http://localhost/phpmyadmin/ にアクセスすると、ブラウザから DB を操作できます(初期 user: root / password 空)。
本番環境では必ずパスワード設定を行ってください:
-- MariaDB に接続
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword';
FLUSH PRIVILEGES;
-- phpMyAdmin 設定も同期
-- C:\xampp\phpMyAdmin\config.inc.php
-- $cfg['Servers'][$i]['password'] = 'YourStrongPassword';
PHP バージョンの切替
XAMPP 自体は 1 つのバージョンしか同梱しませんが、複数版を別ディレクトリにインストールすれば切替可能です:
C:\xampp82\(PHP 8.2)C:\xampp81\(PHP 8.1)C:\xampp74\(PHP 7.4 — レガシー検証用)
同時起動はポート競合するため、片方の Apache を停止してから他方を起動してください。
SSL(HTTPS)の有効化
XAMPP は自己署名証明書を C:\xampp\apache\conf\ssl.crt\server.crt に同梱しています。https://localhost/ で接続できますが、ブラウザは「安全でない」と警告します。本格運用なら mkcert でローカル CA を作るのが推奨:
# Chocolatey で mkcert 導入
choco install mkcert
# ローカル CA を OS に登録
mkcert -install
# 証明書発行
mkcert localhost 127.0.0.1 ::1
# 生成された .pem を Apache に設定
# C:\xampp\apache\conf\extra\httpd-ssl.conf
# SSLCertificateFile "conf/ssl.crt/localhost.pem"
# SSLCertificateKeyFile "conf/ssl.key/localhost-key.pem"
他のローカル開発環境との比較
| 製品 | 特徴 | 向いている用途 |
|---|---|---|
| XAMPP | 定番。スタンドアロン GUI | PHP 学習 / WordPress 検証 / 単発開発 |
| Laragon | Windows 専用。軽量、Auto VirtualHost、Node 同梱 | Windows + PHP モダン開発 |
| MAMP | Mac 寄り。GUI 良好、Pro は有料 | Mac での PHP 開発 |
| Docker | コンテナ。本番と環境揃えやすい | チーム開発 / 本番想定 |
| Laravel Sail | Docker ベースの Laravel 公式 | Laravel プロジェクト |
| WSL2 + Nginx | Linux ネイティブで快適 | Linux 本番想定の Windows 開発者 |
セキュリティ注意
- XAMPP はあくまで開発用。本番公開は禁止(デフォルト設定でセキュリティが緩い)
- 外部からアクセス可能な PC に置く場合は
Listen 127.0.0.1:80でローカル限定に - phpMyAdmin / MariaDB の root パスワードは必ず設定
- 不要なモジュール(FileZilla / Mercury)は同梱を外す
FAQ
Q: Apache が起動しない / 即停止する
A: ポート 80 の競合が 9 割。netstat -ano | findstr :80 で確認し、8080 へ変更。VMware / IIS / Skype 旧版が原因のこと多し。
Q: MySQL のパスワードを忘れた
A: C:\xampp\mysql\bin\my.ini に skip-grant-tables を追加して再起動 → mysql -u root でパスワードリセット → 設定を戻す。
Q: XAMPP を本番で使ってはいけない理由は?
A: デフォルトで MariaDB がパスワード無し、phpMyAdmin が外部公開、Apache のエラー詳細が露出する等のリスクがあるためです。本番は CentOS / Ubuntu + Apache/Nginx を別途構築してください。
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09