Apacheとの関連付け

モジュール版

PHPをモジュール版として使用するには、Apacheの設定ファイルに次のような記述を追加します。

LoadModule php5_module "C:/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/PHP"

これについて順に解説します。

PHPモジュールの組み込み

LoadModule php5_module "C:/PHP/php5apache2_2.dll"

PHPのインストール フォルダにある「php5apache2_2.dll」を読み込むように指定します。これはApache 2.2用で、Apache 2.4ならば「php5apache2_4.dll」を指定します。Apache Additional downloads

非スレッドセーフ版のPHPには、「php5apache2_2.dll」は含まれていません。これはApache2はマルチスレッドのサーバであり、そのようなサーバはスレッドセーフ版のPHPを使用するものとされているからです。

これを正しく読み込めなかった場合には、

C:\>"Program Files (x86)\Apache Software Foundation\Apache2.2\bin\httpd.exe"
httpd.exe: Syntax error on line 100 of C:/Program Files (x86)/Apache Software Fo
undation/Apache2.2/conf/httpd.conf: Cannot load C:/Program Files (x86)/Apache So
ftware Foundation/Apache2.2/php5apache2_2.dll into server: \x8ew\x92\xe8\x82\xb3
\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\x
a9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B

のようなエラーとなります。このとき「\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B」の部分は、デコードすると「指定されたモジュールが見つかりません。」という内容です。これは単純にモジュールのパスの指定を誤っていたり、ApacheとPHPで32ビットと64ビットのように異なるバージョンを使っている場合に発生します。php - cannot load php5apache2_2.dll - Stack Overflow プロセスの相互運用性 (Windows) | MSDN

MIMEタイプの追加

AddType application/x-httpd-php .php

PHPファイルの拡張子.phpを、MIMEタイプ「application/x-httpd-php」にマップします。

設定ファイルのディレクトリの指定

設定ファイルに以下のように追記します。

PHPIniDir "C:/PHP"

FastCGI版