客户的服务器是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!