はじめに (対象読者・この記事でわかること)

このブログは、ローカル環境で XAMPP を利用して PHP 開発を始めた初心者から中級者を対象としています。特に「新しく作成した PHP ファイルがブラウザで 404 エラーや空白画面になる」問題に悩む方に向け、原因の切り分けから具体的な設定変更・デバッグ手順までを体系的に解説します。記事を読むことで、ファイル配置・Apache の設定・PHP のエラーログの見方をマスターし、同様のトラブルを自力で解決できるようになります。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。
- 基本的な HTML と PHP の構文
- XAMPP(Apache, MySQL, PHP)がインストール済みで、コントロールパネルの起動方法が分かること

背景と概要:XAMPPでPHPが読み込めない一般的な原因

ローカルで XAMPP を立ち上げた後、htdocs 配下に新規 PHP ファイルを作成してもブラウザに何も表示されない、あるいは「404 Not Found」になるケースは意外と多いです。主な原因は次のように分類できます。

  1. ファイル配置のミス
    - ドキュメントルート (htdocs) 以外の場所に置いてしまっている。
    - 大文字・小文字の違い(Windows は大文字小文字を区別しないが、Apache の設定次第で区別されることがある)。

  2. Apache の設定不備
    - httpd.confhttpd-vhosts.confAllowOverrideNone になっており、.htaccess が無視される。
    - DirectoryIndexindex.php が含まれていない。

  3. PHP の実行モジュールが無効
    - XAMPP のインストール時に PHP が正しくロードされていない、LoadModule php_module 行がコメントアウトされている。

  4. ファイル権限・所有者の問題
    - Windows 環境でも、アンチウイルスやファイルシステムの制御により Apache がファイルを読めないことがある。

  5. エラーログの確認不足
    - apache\logs\error.log に出力されるエラーメッセージを見逃すと、原因特定が遅れる。

本記事では、上記のポイントを順にチェックし、実際に手を動かしながら問題を解決する手順を示します。

具体的な手順と実装方法

ステップ1 ファイルの正しい配置と名前の確認

  1. ドキュメントルートを確認
    XAMPP のデフォルトでは C:\xampp\htdocs がルートです。作成した test.php がこのフォルダ直下にあるか確認します。
    bash C:\> cd \xampp\htdocs C:\xampp\htdocs> dir test.php
  2. ファイル名の大文字小文字
    test.phpTest.php は別ファイルとして扱われる可能性があります。URL に入力した名前と実ファイル名が完全に一致しているか確認してください。
    url http://localhost/test.php ← 正しい例 http://localhost/Test.php ← ファイル名が違うと 404 になる

ステップ2 Apache の設定をチェック

  1. httpd.conf の編集
    C:\xampp\apache\conf\httpd.conf をテキストエディタで開き、次の行が有効(コメントアウトされていない)か確認します。
    apache LoadModule php_module "modules/libphp7.so" AddHandler application/x-httpd-php .php
  2. DirectoryIndex の追加
    DirectoryIndex ディレクティブに index.php が含まれているか確認。無ければ以下を追記。
    apache DirectoryIndex index.php index.html
  3. AllowOverride の設定
    .htaccess でリライトルールやエラーページを設定したい場合は、対象ディレクトリの AllowOverrideAll に変更します。
    apache <Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 変更後は Apache を再起動します(XAMPP Control Panel の「Stop」→「Start」)。

ステップ3 PHP が正しくロードされているか検証

  1. info.php の作成
    htdocsinfo.php を作り、phpinfo(); を実行させます。
    ```php

`` 2. **ブラウザで確認**http://localhost/info.php` にアクセスし、PHP の情報画面が表示されれば PHP モジュールは有効です。表示されない場合は XAMPP のインストールが壊れている可能性があります。

ステップ4 ファイル権限とアンチウイルスの確認

  • Windows の場合:ファイルのプロパティで「読み取り専用」になっていないか、または「ブロック解除」されていないかチェック。
  • アンチウイルス例外:Microsoft Defenderやサードパーティ製のウイルス対策ソフトが Apache の実行ファイルや htdocs 配下のファイルをブロックしていないか確認し、例外リストに追加します。

ステップ5 エラーログでヒントを探す

  1. エラーログの場所
    C:\xampp\apache\logs\error.log をテキストエディタで開く。
  2. 典型的なエラーメッセージと対処
    - File does not exist: C:/xampp/htdocs/test.php → パスが間違っている。
    - PHP Fatal error: Uncaught Error: Call to undefined function → PHP スクリプト内部のエラー。コードを修正。
    - AH00124: Request exceeded the limit of 10 internal redirects.htaccess のリダイレクトループ。設定を見直す。

ハマった点やエラー解決

  • 問題http://localhost/hello.php が白紙ページになる。
    原因php.inishort_open_tag がオフになっており、<? ... ?> が認識されない。
    解決策C:\xampp\php\php.inishort_open_tag = On に変更し、Apache を再起動。

  • 問題test.php が 404 になるがファイルは存在。
    原因httpd-vhosts.conf でバーチャルホストが作成され、DocumentRoot が別ディレクトリに設定されていた。
    解決策httpd-vhosts.conf<VirtualHost *:80> ブロックを削除、または DocumentRootC:/xampp/htdocs に統一。

まとめ

本記事では、XAMPP 上で新規 PHP ファイルが読み込めない典型的な原因を「ファイル配置」「Apache 設定」「PHP モジュール」「権限」「エラーログ」の5つに分類し、具体的なチェック手順と設定変更例を示しました。

  • 正しいディレクトリへの配置と名前の照合
  • Apache のモジュールロード・DirectoryIndex・AllowOverride の設定
  • PHP が有効か phpinfo() で検証

これらを順に確認すれば、ほとんどの「ファイルが表示されない」問題は解決できます。次回は、XAMPP でのマルチバーチャルホスト構築や HTTPS 化の手順についても取り上げる予定です。

参考資料