windows2008R2 x64位架设IIS7.x的支持SQLServer2008的PHP服务器

     客户的服务器是windows2008R2 x64位的,数据库是SQLServer2008版本,要在原来的.net的web版本系统基础上做手机版本,又因为手机版本要支持微信支付,必须用有域名的80端口,本人是用ThinkPHP3.2.3来做后台开发的,一系列下来发现,真是麻烦。

在IIS7.0 (客户已经安装好II7.0 这里就不多说安装过程了,记得选择:"CGI"、"ISAPI 扩展"、"ISAPI 筛选器")上支持php解析:最好方式是安装 "PHP Manager" 来管理 (http://phpmanager.codeplex.com/releases/view/69115 本人64位系统,下得是:PHP Manager 1.2 for IIS 7 - x64 版本),

把到:"http://windows.php.net/download#php-5.5" 下载的32位的5.5.35版本  "VC11 x86 Thread Safe" 解压缩到:D:php 目录下,这里一定要提醒的是,因为要连接SQLServer2008数据库不要下载php5.5 x64位的版本,否则会导致:

" Undefined class constant 'PDO::SQLSRV_ATTR_ENCODING'

错误位置
FILE: D:phpwwwThinkPHPLibraryThinkDb.class.php  LINE: 39 

"
ThinkPHP3.2.3的这个错误提示,是因为微软的SQLServer2008的PDO驱动没有提供x64位的。

安装对应的支持库文件,https://support.microsoft.com/en-us/kb/2977003    The latest supported Visual C++ downloads 下载对应的c++支持库,本人用x86_2012_vc11,安装。


在 "PHP Manager"修改相关配置,指向 D:php的解析程序,

在PHP Manager --> PHP Extensions --> Enable or disable an extension 里面,启用或停用对应的扩展:

开启 所需模块,如:php_curl.dll  php_mysql.dll   php_mysqli.dll   php_xmlrpc.dll   php_curl.dll 等等。

然后测试一下phpinfo()是否ok

就说明php环境ok了。

接下来,做支持MS SQLServer2008数据库的支持,

去MS网站下载相关的文件: https://msdn.microsoft.com/en-us/library/cc296170.aspx  对应的dll文件与ODBC11,

 https://www.microsoft.com/en-us/download/details.aspx?id=36434  有32位版本与64位版本 (msodbcsql_amd64.msi) ODBC11本人是x64位版本,请安装;

32位的php5.5.3对应的是: https://www.microsoft.com/en-us/download/details.aspx?id=20098   SQLSRV32.EXE,运行解压,将:线程安全的"php_pdo_sqlsrv_55_ts.dll"、"php_sqlsrv_55_ts.dll" 文件,拷贝到D:phpext 目录下。

编辑:D:phpphp.ini文件:
date.timezone = "Asia/Shanghai"
extension_dir = "D:phpext"
extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll

因为要与IIS以前默认的80端口的程序公用,在"Default Web Site"上面"添加应用程序..."

配置相关选项。

测试ok!

原文地址:https://www.cnblogs.com/doinone/p/5525666.html