アットウィキロゴ

PHP-WindowsXP/2003-x64

  • 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