Windows環境におけるPHP 5.6とApache 2.4の統合設定ガイド

本ガイドでは、Windowsプラットフォーム上でPHP 5.6(VC11ビルド)とApache HTTP Server 2.4を連携させるための実践的設定手順を解説します。依存関係の解決から仮想ホスト導入まで、一貫した動作確認を前提とした構成を提供します。

前提条件と準備

  • PHPバイナリ:公式推奨のphp-5.6.27-Win32-VC11-x64.zipをダウンロードし、D:\phpに展開
  • Apacheサーバ:ApacheLoungeからhttpd-2.4.23-win64-VC14.zipを取得し、D:\Apache24へ配置
  • ランタイム依存:Microsoft Visual C++ 2012再頒布可能パッケージ(x64版)がインストール済みであること(vcredist_x64.exe

基本設定手順

  1. 環境変数の更新
    システムのPATHに以下のパスを追加:
    D:\php;D:\php\ext
  2. Apacheのルート設定
    D:\Apache24\conf\httpd.confを開き、ServerRootディレクティブを次のように修正:
    ServerRoot "D:/Apache24"
  3. サーバ名とポート指定
    ServerNameを明示的に定義し、ポート不整合を回避:
    ServerName localhost:8082
    Listen 8082
  4. ドキュメントルートの再定義
    DocumentRoot "D:/Apache24/htdocs"
    <Directory "D:/Apache24/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
  5. PHPモジュールの有効化
    httpd.conf末尾に以下を追加:
    # PHP 5.6 integration
    LoadModule php5_module "D:/php/php5apache2_4.dll"
    AddHandler application/x-httpd-php .php .html .htm
    PHPIniDir "D:/php"

サービス登録と起動確認

管理者権限でコマンドプロンプトを起動し、以下のコマンドでApacheをWindowsサービスとして登録:
D:\Apache24\bin\httpd.exe -k install -n "Apache24"

その後、サービスを開始:
net start Apache24

ブラウザで http://localhost:8082 にアクセスし、「It works!」メッセージが表示されれば、Apache単体の動作は正常です。

仮想ホストによるマルチサイト構成

  1. httpd.conf内のコメントを外して仮想ホスト設定を有効化:
    Include conf/extra/httpd-vhosts.conf
  2. conf/extra/httpd-vhosts.confを編集し、次の構成を追加:
    <VirtualHost *:8082>
        DocumentRoot "D:/Apache24/htdocs/project-alpha"
        ServerName localhost
        <Directory "D:/Apache24/htdocs/project-alpha">
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. 重要制約事項:仮想ホストのDocumentRootは、Apacheの<Directory>セクションで明示的に許可されたパス内に存在する必要があります。外部ドライブや上位階層への参照は、デフォルトでは拒否されます。

トラブルシューティングの要点

  • ポート不一致エラー:ListenVirtualHostServerNameのポート番号がすべて同一であることを検証してください。
  • アクセス拒否(403):対象ディレクトリに対し<Directory>ブロックでRequire all grantedが適用されているか確認します。
  • PHPスクリプトの無効化:AddHandlerディレクティブの拡張子リストに.phpが含まれ、php5apache2_4.dllのパスが正確であることを再確認してください。

タグ: php5.6 apache2.4 web-server Windows HTTPD

9月2日 09:59 投稿