64位Windows Server如何使用PHP

本文致力于描述如何在Windows Server 2003下安装配置PHP环境时遇到的问题及解决。

环境说明:

  • 操作系统:Windows Server 2003 Computing Cluster Edition,英文版(由Microsoft支持)
  • 相关软件:Internet Information Services 6.0
  • PHP:PHP 5.2.6 zip package。(最新版下载地址

PHP装多了,闭着眼也能装好。于是今天早晨却遇到一个诡异的问题。
用了5分钟装好PHP之后,刷新IE,我的index.php里很简单,就是简单的phpinfo:
[code=’c#’]

[/code]
熟悉的界面并没有出来,取而代之是连不上服务器。也不是500内部服务器错误,因为如果是500,说明PHP没配置正确。这次很诡异,就是连不上服务器。是这个样子的:

[singlepic=18201,640,480]

我打开IIS的ISAPI Filters,确实PHP的ISAPI是一个红色的向下箭头,加载失败了。

[singlepic=18197]

这是为什么?不应该啊,我玩PHP可不是一年两年了,配过的服务器无数…怎么会失手…
赶忙看看静态页能不能显示,创建了一个a.html,能够显示的。
打开Event Viewer,一片错误:

[singlepic=18200]

打开一个看一下什么问题:

[singlepic=18198]


ISAPI Filter ‘D:\PHP\php5isapi.dll’ could not be loaded due to a configuration problem. The current configuration only supports loading images built for a AMD64 processor architecture. The data field contains the error number. To learn more about this issue, including how to troubleshooting this kind of processor architecture mismatch error, see http://go.microsoft.com/fwlink/?LinkId=29349.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

这才幡然醒悟:我用的这台服务器安装的是Windows Server 2003 Computing Cluster Edition,只有64位的!64位系统上IIS自然也是64位IIS。
怎么办呢,我总不至于换服务器吧,多麻烦,还得开别的远程桌面…

Anyway,Google到一个方法,Running PHP on 64-Bit Windows,我试一下。
其实解决64位兼容性问题一般也就两种方式:换64位PHP,或者让IIS在32位方式下运行。下面介绍一下如何让64位系统的IIS在32位模式下运行。

[singlepic=18199]

打开一个Command Prompt,输入:
[code=’c#’]
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
[/code]
这样可以或者让IIS在32位方式下运行。这个问题在KB文章Windows Server 2003 SP1 enables WOW64 compatibility for 32-bit Web applications in IIS 6.0How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows讨论过。

[singlepic=18203]

成功了。重启World Wide Web Publishing Service,Eventlog中没有出现新的警告,IIS的ISAPI中也出现了绿色向上的箭头,PHP加载成功了。
需要说明的是,另一种方法,换64位的PHP,也不是不行的。存在64位PHP项目,PHP 5.2.1 x64 Project,我没有采用,原因主要是,我认为PHP升级速度还是比较快的,第三方进行的64位PHP项目不一定能跟得上变化吧。希望PHP早日推出64位版本。

[singlepic=18202,640,480]

再次刷新IE,PHPInfo出现了。

本文图片使用Nocoo.Tools提供的工作窗口截图工具ScreenCapture截取。

2 comments

  1. 几天没来看发现内容又多了好多嘛
    最近想学个脚本语言呢 教我哈 嘿嘿

发表评论