6.

XAMPP 完全ガイド — インストールから運用まで(Apache + MariaDB + PHP)

編集
この記事の要点
  • XAMPP は Apache HTTP Server + MariaDB(旧 MySQL)+ PHP + Perl を 1 つにまとめたクロスプラットフォーム開発環境バンドル
  • Windows / macOS / Linux 対応。Apache Friends が配布する OSS で、ローカルでの Web 開発・PHP 学習・WordPress 検証に定番
  • インストール後は コントロールパネルで Apache / MySQL / FileZilla / Mercury を起動・停止できる
  • ポート競合(80 / 3306)に注意。Skype / IIS / MySQL 既存環境とぶつかる → 8080 / 3307 へ変更
  • 近年は Docker / Laravel Sail / Laragon 等のモダン代替もあるが、初学者・スタンドアロン用途では今も第一候補

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)

  1. apachefriends.org から PHP バージョン別 (8.2 / 8.1 / 7.4 等) インストーラを取得
  2. 管理者として実行。インストール先は C:\xampp(パスにスペースを含めない)
  3. コンポーネント選択画面で必要なものだけチェック(Tomcat / Mercury は不要なら外す)
  4. 完了後、XAMPP Control Panel を起動して Apache と MySQL の「Start」をクリック
  5. ブラウザで http://localhost/ にアクセス → ダッシュボードが出れば成功

コントロールパネルの使い方

モジュール役割主なポート
ApacheWeb サーバ。htdocs/ 配下を公開80 / 443
MySQL (MariaDB)データベース3306
FileZillaFTP サーバ21
MercurySMTP / POP3 メールサーバ25 / 110
TomcatJava サーブレット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
# 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/ から見えます。

プロジェクトごとに 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定番。スタンドアロン GUIPHP 学習 / WordPress 検証 / 単発開発
LaragonWindows 専用。軽量、Auto VirtualHost、Node 同梱Windows + PHP モダン開発
MAMPMac 寄り。GUI 良好、Pro は有料Mac での PHP 開発
Dockerコンテナ。本番と環境揃えやすいチーム開発 / 本番想定
Laravel SailDocker ベースの Laravel 公式Laravel プロジェクト
WSL2 + NginxLinux ネイティブで快適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.iniskip-grant-tables を追加して再起動 → mysql -u root でパスワードリセット → 設定を戻す。

Q: XAMPP を本番で使ってはいけない理由は?
A: デフォルトで MariaDB がパスワード無し、phpMyAdmin が外部公開、Apache のエラー詳細が露出する等のリスクがあるためです。本番は CentOS / Ubuntu + Apache/Nginx を別途構築してください。

編集
Post Share
子ページ
  1. インストール方法
  2. ポート番号の競合
  3. ドキュメントルート(htdocs)の変更方法
同階層のページ
  1. eclipse
  2. NetBeans
  3. Visual Studio
  4. Android Studio
  5. PyCharm
  6. XAMPP
  7. Jupyter Notebook
  8. Unity
  9. Xcode