本記事では、Windowsを例として、XAMPPを使ったPHPの開発環境構築方法を解説します。XAMPPはApache、MariaDB(以前はMySQL)、PHP、Perlなどがひとまとめに入っているパッケージで、簡単にローカル環境での開発を始めることができます。初心者でも導入しやすく、Webアプリケーション開発の学習やテストに最適です。
XAMPPに含まれるアプリケーション
XAMPPは以下の主なアプリケーションが含まれています。
PHP環境に必要なアプリケーション
- Apache
- 概要: Webサーバーソフトウェア。ブラウザからのリクエストを受け取り、PHPファイルなどを処理してレスポンスを返します。
- MariaDB(MySQL互換)
- 概要: データベース管理システム。アプリケーションでデータを保存するときに利用します。
- PHP
- 概要: サーバーサイドのスクリプト言語。動的なWebアプリケーションを開発する際に用います。
- Perl
- 概要: PHPと同様のスクリプト言語ですが、近年はPHPの使用が主流になっています。XAMPPには引き続き含まれています。
- phpMyAdmin
- 概要: Webブラウザ上でMariaDBを操作できる便利な管理ツール。テーブルの作成やデータの入力などをGUIで行えます。
上記のアプリケーションがひとまとめになっており、一度のインストールでWeb開発環境をすぐに整えられます。
XAMPP Control Panel(Windows版)
- 用途: Windows上でApacheやMySQL(MariaDB)、FileZilla FTP Serverなどの「起動・停止・ログ確認」を簡単に行える管理ツールです。
- 利点: GUI操作でサーバーのオン/オフを切り替えられるため、初心者でも扱いやすい点が魅力です。
FileZilla FTP Server
- 用途: FTPを使ってファイルをアップロード/ダウンロードするためのサーバー機能を提供します。
- 利点: ローカル開発でも、外部とのファイル連携が必要な場合に重宝します。
Mercury Mail Transport System
- 用途: ローカル環境でメール送受信のテストを行えるメールサーバーです。
- 利点: 開発段階でフォーム送信時のメール動作確認が必要な場合に便利です。
なお、FileZillaやMercuryなどは、OSやXAMPPバージョンによっては同梱されていない場合もあります。
XAMPPのインストール
XAMPPは公式サイト(Apache Friends)からダウンロードできます。Windows版のほか、macOS版、Linux版も用意されています。本記事では主にWindows向けの導入方法を例に解説します。
インストーラー版とダウンロード版の違い
- インストーラー版(Installer)
通常の実行形式(.exe)ファイルです。ダブルクリックしてウィザードに沿って進むだけで、自動的に必要なフォルダへの配置やショートカットの作成を行ってくれます。 - ダウンロード版(Zip版/7z版)
ZIP/7z形式のアーカイブをダウンロードし、手動で解凍してフォルダを配置します。
社用PCなどの場合、管理者権限がなくてもPCに設置可能なため、本記事ではダウンロード版の使用をオススメします。
ダウンロード版をインストール
この記事では、あえて少し手順が多いダウンロード版をインストールしてみます。インストール方法を理解することができれば、後々トラブルシューティングもしやすくなります。
XAMPPの公式サイトでダウンロード
Apache FriendsからWindows向けのZIP(または7z)アーカイブをダウンロードします。
1.「その他のダウンロード」をクリック

2. 「XAMPP Windows」を選択

3. インストールするXAMPPのバージョンを選択
次の画面でインストールするXAMPPのバージョンを選択します。XAMPPのバージョンはPHPのバージョンと連動しているため、任意のバージョンを選択してください。
特に指定のバージョンがない場合は、最新版でダウンロード数が多いバージョンをオススメします。

4. ポータブル版のXAMPPをクリックします
例「xampp-portable-windows-x64-8.2.12-0-VS16.7z」
※インストーラー版と間違えないように注意

5. 次の画面に遷移すると、自動でダウロードが開始されます。
上記例の場合、「xampp-portable-windows-x64-8.2.12-0-VS16.7z」の圧縮ファイルがダウンロードされます。
アーカイブ(Zip)を解凍
ダウンロードしたファイルを右クリックして「すべて展開」や7-Zipなどのツールで解凍します。
解凍先はCドライブ直下にしてください(例:C:\xampp )

なぜ「C:\xampp」に設置するのか?
XAMPPのインポート版は、インストーラーを使わずに解凍してそのまま利用できる「ポータブル版」として提供されています。この版は、あらかじめ特定のパス、通常は「C:\xampp」を前提として設定されているため、以下のような理由からそのディレクトリに配置するのが推奨されています。
- 設定ファイル内のパス指定が固定
Apacheのhttpd.conf、MySQLのmy.ini、PHPのphp.iniなど、多くの設定ファイルには絶対パスが記述されています。たとえば、ApacheのServerRootやDocumentRootの設定が「C:\xampp」内を前提にしているため、別のディレクトリに設置すると手動で修正が必要になり、ミスや動作不良の原因となります。 - 相対パスの利用を前提とした設計
インポート版は、内部のスクリプトやバッチファイルも「C:\xampp」を基本として動作するように作られているため、配置場所を変更すると、内部参照が正しく解決されず、各種サービス(Apache、MySQLなど)が正常に起動できなくなる可能性があります。
まとめると、XAMPPのインポート版は、初期設定や内部スクリプトが「C:\xampp」を前提として作られているため、変更せずそのままのディレクトリに設置することで、設定ミスや動作不良を防ぎ、安定した動作を実現できるのです。
フォルダの配置を確認
C:\xampp
フォルダの中にapache
やphp
、mysql
といったフォルダがあるか確認しましょう。
初期設定ファイルの確認(必要に応じて)
初心者であればデフォルト設定でも十分に動作しますが、ポート番号を変更したい場合は設定ファイルを編集する必要があります。最初は特に変更せずに進めても問題ありませんが、ポート番号を使用した開発環境を作ると、複数サイトを制作する場合に管理が楽になるので、後の項目で紹介します
XAMPPの使い方
XAMPPを使うには、ApacheとMariaDBなど必要なサービスを起動・停止させる必要があります。ダウンロード版の場合、コントロールパネル(xampp-control.exe
)を手動で起動します。
起動方法
1. XAMPPコントロールパネルを起動
C:\xampp
フォルダ内にある xampp-control.exe
をダブルクリックすると、XAMPP Control Panelが表示されます。

2. Apache と MySQL(MariaDB) の「Start」ボタンをクリック
PHP とデータベースを使う場合は、XAMPP で Apache と MySQL を起動する必要があります。コントロールパネルの「Start」ボタンを押すと「Running」と表示され、ポート番号が表示されれば成功です。
まずは「Apache」を起動し、次に「MySQL」を起動してください。XAMPP の環境によっては、Apache を先に起動していないとエラーが起きる場合もあります。基本的には「①Apache →②MySQL」の順で起動すると安心です。

停止方法
1. XAMPP コントロールパネルで「Stop」ボタンをクリック
- Apache や MySQL の「Stop」ボタンを順番に押して停止します。
- 推奨停止順序: ①MySQL を停止 → ②その後 Apache を停止
※先にApacheを停止すると、MySQLの中にあるデータベースが破損する危険があります。

2. 先にMySQLを停止する理由
- Apache が動作中の場合、MySQL へのアクセスが続いているかもしれません。MySQL を先に停止しておけば、Apache を停止したときに中途半端なリクエストが発生するリスクを減らせます。
- ただし、Apache を先に停止しただけでただちにデータベースが破損するわけではありませんが、万一の不整合を避けるためにも推奨手順を守ると安心です。
コントロールパネルを閉じる
すべて停止したのを確認後、コントロールパネルの「Quit」を選択してください。
右上の「×」ボタンから閉じただけでは、Apache や MySQL がバックグラウンドで動き続けることがあります。Windowsのタスクマネージャーを開くと「mysql.exe」や「httpd.exe」が残っていることが確認できる場合もあります。必ず「Stop」で停止した後、「Quit」ボタンを押して完全に XAMPP を終了させてください。

ブラウザで表示してみる
XAMPPのApacheを起動できたら、実際にPHPファイルをブラウザで表示してみましょう。初歩的な動作確認をすることで、環境が正しく設定されているかチェックできます。
WEB用ファイルの設置方法
ドキュメントルート(htdocs
フォルダ)を確認
XAMPPでは、C:\xampp\htdocs
フォルダがWebの公開フォルダ(ドキュメントルート)として設定されています。ここにHTMLやPHPのファイルを置くと、ブラウザからアクセスできます。

テスト用PHPファイルを作成
htdocs
フォルダ直下に「test.php」などのファイルを作り、以下のような内容を記述してみてください。
<?php phpinfo(); ?>
ブラウザでアクセス
ブラウザのアドレスバーに http://localhost/test.php
と入力してEnterを押すと、PHPの情報が表示されるページにアクセスできます。これが表示されれば環境構築は完了です。

「localhost:ポート番号」でサイトごとにURLを設定する
複数のPHPサイトを制作する場合、本番環境と同じディレクトリ構成(階層)で開発を行うと、移行時のトラブルを防ぎやすくなります。XAMPPの初期設定では、すべてのプロジェクトを「htdocs」フォルダ直下に配置することが多いですが、そのままでは本番環境と階層が異なるケースがあります。
そこで、ポート番号を割り当てることで、プロジェクトごとにURLを分けながらも本番環境と近いディレクトリ階層を維持する方法を解説します。
- フォルダを分けるだけでは、本番とディレクトリ構造が微妙にズレてしまう可能性があります。
- ポート番号でアクセス先を切り替えると、複数プロジェクトを同一マシン上で開発しやすくなります。
- Windows環境なら「C:\xampp\~」以下、macOSなら「/Applications/XAMPP/~」以下のファイルを編集します(パスが異なる場合あり)。
1. htdocsフォルダにプロジェクト用のフォルダを作成
まずは、XAMPPのインストール先にあるhtdocs
フォルダに、開発したいサイトごとのフォルダを作成します。
- フォルダ名はドメイン名やサイト名など、わかりやすい名前がおすすめです。
- 今回の例では「bukiusagi」というフォルダを作成しています(
C:\xampp\htdocs\bukiusagi
)。
htdocs
├─ bukiusagi
└─ (ここにファイルを置く)
2. 仮のファイル(index.htmlなど)を設置
作成した「bukiusagi」フォルダの中にテスト用のindex.html
を設置します。
内容は「Hello World!」など、表示テストができる簡単なものでOKです。
後でPHPファイルに置き換えたりするので、まずは動作確認用のファイルを用意してください。
3. httpd.conf
にポート番号を追加する
XAMPPのApache設定ファイルである「C:\xampp\apache\conf\httpd.conf
」をテキストエディタで開きます。
- 「Listen 80」という記述を検索し、新たに「Listen 4540」のようにポート番号を追加します。
- ここで指定した数字(例:4540)が、後からサイトにアクセスするときに使うポート番号になります。
- 好きな番号で構いませんが、既に他のアプリやサービスで使用されていないポートを選ぶ必要があります。
- 代表的なものでは、80番はHTTP、443番はHTTPSで使われています。
- 重複するとサーバーが起動しなかったり、エラーが出たりしますので注意してください。
# 既存の記述
Listen 80
# 追加する
Listen 4540
4. httpd-vhosts.conf
を設定する
Apacheでバーチャルホスト(VirtualHost)を使って、ポート番号ごとに異なるプロジェクトを読み込む設定を行います。
4.1 サンプルコードを探す
「C:\xampp\apache\conf\extra\httpd-vhosts.conf
」を開き、下記のようなサンプルコードを検索します。
通常はコメントアウト(##
)された状態になっています。
##<VirtualHost *:80>
## ServerAdmin webmaster@dummy-host2.example.com
## DocumentRoot "/xampp/htdocs/dummy-host2.example.com"
## ServerName dummy-host2.example.com
## ErrorLog "logs/dummy-host2.example.com-error.log"
## CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>
4.2 コードをコピーしてコメントアウトを外す
サンプルコードをまるごとコピーし、そのままファイルの下部などにペーストします。
その後、先頭にある「##
」を削除してコメントアウトを外すと、下記のようになります。
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/xampp/htdocs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
4.3 バーチャルホストの設定を追加
コピーした上記のコードを参考に、新たにポート番号を4540で使うような設定を追記します。
VirtualHost
の箇所に「:4540
」を設定DocumentRoot
は作成したフォルダ(例:/xampp/htdocs/bukiusagi
)に指定ServerName
をlocalhost
に指定(ポート番号でアクセスするので「localhost」で問題ありません)
<VirtualHost *:4540>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/xampp/htdocs/bukiusagi"
ServerName localhost
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
補足
ErrorLog
やCustomLog
などのログファイルパスは使い回しても良いですが、プロジェクトごとに分けたい場合は適宜ファイル名を変更してください。ServerName
を独自のドメイン名にして、hosts
ファイルを編集してアクセスする方法もありますが、ここではシンプルにポート番号でアクセスする形をとっています。
5. XAMPPを再起動する
ここまでの設定を反映させるために、XAMPPを再起動します。
- XAMPPコントロールパネルを開く
- 「Apache」の「Stop」をクリック
- 停止したら、再度「Start」をクリック
- エラーが出ずに「Apache」が起動できればOKです
もしエラーが出たら
- ポート番号が既に他で使われていないか確認
httpd.conf
やhttpd-vhosts.conf
のスペルミス・フォルダパスを再確認- 末尾の
</VirtualHost>
がちゃんと閉じられているかチェック
6. ブラウザでアクセスしてみる
設定が完了したら、ブラウザを開いて以下のURLにアクセスしてください。
http://localhost:4540/
- 正常に設定されていれば、先ほど作成した
index.html
の内容(「Hello World!」など)が表示されます。 - シークレットウィンドウ(プライベートブラウズ)を使うと、キャッシュやリダイレクト設定がブラウザに残らないため、初回テストにはおすすめです。
HTTPSへのリダイレクトに注意
- 設定にミスがあると、通常のブラウザが「https」にリダイレクトしてしまい、そのリダイレクト履歴がブラウザ内に残る場合があります。
- その場合、正常に設定を修正してもブラウザが自動的にhttpsに飛んでしまい表示されないことがあります。
- 初回はシークレットウィンドウでアクセスし、問題がなければ通常ブラウザで開発を進めるとスムーズです。
まとめ
XAMPPを使えば、初めてのPHP学習やWebアプリケーション開発を気軽に始めることができます。
ApacheとMySQLを起動し、htdocs
にPHPファイルを置いてブラウザからアクセスするだけで動作確認が行えます。
慣れてきたら、wordpressの設置、ログの確認などに挑戦して、より快適な開発環境を整えていきましょう。