今天碰到一个棘手的问题,就是在一台装有64位windows 2003的服务器装装php环境,首先是按照下面的步骤安装:
首先是将服务器64位的iis切换成32位的iis,因为最新的php都是32位的,网上有人自己编译的64位版本,作为服务器也不能轻易使用。
ASP.NET 2.0,32 位版本要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%Microsoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。 ASP.NET 2.0,64 位版本
要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令禁用 32 位模式:
cscript %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%Microsoft.NETFramework64v2.0.50727aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。
注意:ASP.NET 2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 2.0.40607。 然后按照下面的步骤将php配置好:
1. 获取php5.2.9.zip
2. 将php5.2.9.zip中的所有文件解压到一个目录,如C:php5
3. 将C:php5文件夹中多有的 .dll 的文件复制到 C:WINDOWSsystem32
如果是win2000, 则复制到C:WINNTsystem32
4. 将C:php5php.ini-dist文件复制到C:WINDOWS
且将文件名由php.ini-dist 更改为php.ini
5. 更改C:WINDOWSphp.ini 文件中配置
将extension_dir = "./" 更改为extension_dir = "C:php5ext"
将 ;extension=php_mysql.dll 的 ; 删除
6. IIS设置支持php
1> IIS -> 默认网站 右键 -> 属性 -> 主目录 -> 配置 -> 应用程序配置-> 添加2) IIS -> Web服务扩展 -> 允许 所有未知ISAPI扩展
此时用了一个phpinfo看了一下,居然出来了。于是拿了一个调用mysql的php程序测试了一下,居然出现 Fatal error: Call to undefined function mysql_connect()
于是半天时间也就这样搭进去了。
在网上翻遍了中英文的网页,也没有找到很有效的解决方法。网上讨论这个问题的帖子实在太少,大多都在讨论如何把php装到64位的系统上,估计大家装了之后,都没有用mysql吧。
正在郁闷的时候,突然想起了这个文件夹 C:WINDOWSSysWOW64, 这个就是windows on windows。64位才有的。 于是将 c:php5libmysql.dll 拷贝到 C:WINDOWSSysWOW64 顺利的解决了问题!!