- 64bit WindowsXP/2003のIIS6.0でphp5isapi.dll等を利用する場合、ワーカープロセスを32bitに強制しなくてはならない
- 対象:
- Windows XP x64 Edition
- Windows Server 2003/2003 R2 x64 Edition
- 理由:
- 64bit WindowsXP/2003のIIS6.0は、デフォルトで64bit版がインストールされる
- 64bit版IIS6.0はワーカープロセスをデフォルトでは64bitで起動する
- PHP.netで配布されているコンパイル済みのPHPは32bitである
- 64bitワーカープロセスが32bitのPHPのDLLを利用しようとしてエラーになる
- 解決方法:
- A:PHPのDLLを自前で64bitコンパイルする←かなり非現実的
- B:ワーカープロセスを32bitで起動することを強制する設定を行う
- 設定方法:cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
- 注意:IIS6.0から起動されるワーカープロセスはすべて32bitになる。他のISAPIフィルタ(ASP.NET等)がインストールしてある場合、64bitのものは動作しなくなるため注意すること
- 参考1 参考2
- 付記:
- 64bit WindowsVISTA/2008/7はIIS7.0以上で、ISAPIフィルタ別にワーカープロセスを64bit/32bit起動するか設定が可能なため、この問題はない
- PerlはISAPIフィルタではなくCGIのため、この問題はない。PHPもISAPIではなくPHP-CGI.exeで動作させるのならば、この問題はない。FastCGIは64bitOSの場合、64bit版もインストールされるため、この問題はない。
最終更新:2010年04月09日 21:32