1.

XAMPP の Windows インストール手順(ポート競合 / php.ini / ドキュメントルート)

編集
この記事の要点
  • XAMPP は Apache + MySQL(MariaDB) + PHP + Perl をまとめて入れられる無料パッケージ
  • Apache Friends 公式からインストーラーをダウンロード → 管理者として実行
  • インストール先は C:\xampp(日本語パス・Program Files は避ける)
  • ポート 80 / 443 / 3306 が他アプリと競合しがち → httpd.conf / my.ini で変更可
  • ドキュメントルートは C:\xampp\htdocs、PHP 設定は C:\xampp\php\php.ini、Apache 設定は C:\xampp\apache\conf\httpd.conf

XAMPP とは

Apache Friends が無償配布するWeb 開発用オールインワンパッケージです。Windows / macOS / Linux 版があり、PHP の学習・ローカル開発の定番です。

同梱役割
ApacheWeb サーバー(80 / 443)
MariaDB (MySQL 互換)データベース(3306)
PHPサーバーサイド言語
phpMyAdminDB 管理 Web ツール
Mercuryメールサーバー(任意)
Tomcat / FilezillaJava サーブレット / FTP(任意)

手順 1: ダウンロード

  1. ブラウザで apachefriends.org にアクセス
  2. 「XAMPP for Windows」のセクションから希望の PHP バージョン(例: 8.2.x)を選ぶ
  3. 「Download」ボタンで xampp-windows-x64-X.X.X-VC15-installer.exe を保存(約 150MB)

手順 2: インストーラー実行

  1. ダウンロードした .exe を右クリック → 「管理者として実行」
  2. UAC ダイアログで「はい」
  3. 「Warning: UAC is active...」が出ても OK で進める(Program Files に入れなければ問題なし)
  4. セットアップウィザード → Next
  5. コンポーネント選択(最低限 Apache / MySQL / PHP / phpMyAdmin)
  6. インストール先 → C:\xampp(変更可。日本語・空白を含まないパスにする)
  7. 言語選択(English / German のみ)→ Next
  8. Bitnami の宣伝はチェック外して OK
  9. Next で展開開始(5〜10 分)
  10. Finish → コントロールパネル起動

手順 3: コントロールパネルで Apache / MySQL を起動

  1. 「XAMPP Control Panel」が起動する(スタートメニューからも開ける)
  2. Apache 行の Start ボタンをクリック → 緑色になれば成功
  3. MySQL 行の Start ボタンも同様に
  4. ブラウザで http://localhost/ にアクセス → XAMPP ダッシュボード表示なら OK

手順 4: 動作確認

ブラウザで http://localhost/info.php にアクセスし、PHP 情報ページが表示されれば成功。

ポート競合の解消

XAMPP が起動しない最大の原因はポート競合です:

ポート用途競合しがちなアプリ
80HTTPIIS / Skype / SQL Server Reporting Services / VMware
443HTTPSIIS / VMware
3306MySQL別の MySQL / MariaDB / SQL Server

競合確認:

# 管理者 PowerShell
netstat -ano | findstr :80
netstat -ano | findstr :3306

# 出力例:
#  TCP    0.0.0.0:80    LISTENING    1234
# PID 1234 のプロセスを確認
tasklist /FI "PID eq 1234"

# IIS が原因の場合は停止
net stop W3SVC

# 完全に無効化したい
sc config W3SVC start= disabled

Apache のポートを 80 → 8080 に変更

# C:\xampp\apache\conf\httpd.conf を編集

# Listen 80
Listen 8080

# ServerName localhost:80
ServerName localhost:8080

SSL 用も同様に C:\xampp\apache\conf\extra\httpd-ssl.conf で 443 → 8443 等に変更。コントロールパネルで Apache を Restart。

MySQL のポート変更

# C:\xampp\mysql\bin\my.ini

[client]
port=3307

[mysqld]
port=3307

# phpMyAdmin 側にも反映
# C:\xampp\phpMyAdmin\config.inc.php に
$cfg['Servers'][$i]['port'] = '3307';

ドキュメントルート(公開フォルダ)

デフォルトは C:\xampp\htdocs。ここに置いた PHP/HTML がブラウザで http://localhost/... としてアクセス可能です。

変更する場合:

# httpd.conf

# DocumentRoot "C:/xampp/htdocs"
DocumentRoot "D:/projects/mysite"

# 

    AllowOverride All
    Require all granted

php.ini の主要設定

; C:\xampp\php\php.ini

; アップロードサイズ
upload_max_filesize = 50M
post_max_size = 50M

; メモリ上限
memory_limit = 256M

; 実行時間
max_execution_time = 300

; タイムゾーン
date.timezone = "Asia/Tokyo"

; エラー表示(開発時のみ)
display_errors = On
error_reporting = E_ALL

; 拡張モジュールの有効化(先頭の ; を外す)
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl
extension=curl
extension=gd

変更後は Apache を Restart

Windows Defender ファイアウォール許可

初回起動時に「Windows セキュリティの重要な警告」が出たら 「プライベートネットワーク」にチェックを入れて許可。LAN 外には公開しないこと。

よくあるトラブル

症状原因対処
Apache が Start ですぐ止まるポート 80 競合競合プロセス停止 or 8080 等に変更
「Access forbidden」エラーhtdocs 外を見ているhttpd.conf の Directory 設定確認
「Object not found」 404ファイル名・パス間違い大文字小文字を確認、URL に拡張子つける
MySQL が起動しない前回異常終了で ibdata1 ロックmysql/data/ib_logfile* を退避して再起動
phpinfo が php ファイルとしてダウンロードされるPHP がモジュール認識されていないApache 再起動、httpd.confLoadModule php_module 確認

FAQ

Q: XAMPP と Laragon / WAMP / MAMP どれが良い?
A: 学習用なら XAMPP が情報量豊富で安心。業務開発はバージョン管理しやすい Docker や Laragon が便利。本番に近づけたいなら WSL2 + Apache/Nginx を推奨。

Q: アンインストール手順
A: コントロールパネル → プログラムのアンインストール → 「XAMPP」を選択 → アンインストーラー実行。htdocs 内のプロジェクトは事前にバックアップを取ること。

Q: Composer や Git は同梱されている?
A: 同梱されません。別途インストール推奨。Composer は getcomposer.org から、Git は git-scm.com から。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ダウンロード&インストール方法(Windows)
  2. インストール方法(Linux)
  3. コマンド一覧
  4. SQL
  5. データ型
  6. 関数
  7. 管理ツール
  8. 設定
  9. パフォーマンスチューニング関連
  10. エクスポートおよびインポート
  11. エラー&トラブル
  12. 文字コードの確認
  13. 実行中の SQL の状態確認およびプロセスキルの方法
  14. パスワードの無効化設定
  15. root ユーザーの初期パスワード確認方法
  16. rootユーザーのパスワード変更方法
  17. LIMIT, OFFSET の始まりと挙動
  18. mysqlのバージョン確認方法
  19. 実行計画の表示方法
  20. レプリケーションのステータス確認方法
  21. 中央値の導き方(バージョン8未満)
  22. 階層SQL(バージョン8未満)
  23. パーセンタイルの導き方
  24. 特定スキーマの全テーブルの全カラム情報を取得する方法
  25. MySQLで文字列の置換をする方法