標籤:
客戶的伺服器是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:\php\www\ThinkPHP\Library\Think\Db.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:\php\ext 目錄下。
編輯:D:\php\php.ini檔案:
date.timezone = "Asia/Shanghai"
extension_dir = "D:\php\ext"
extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll
因為要與IIS以前預設的80連接埠的程式公用,在"Default Web Site"上面"添加應用程式..."
配置相關選項。
測試ok!
windows2008R2 x64位架設IIS7.x的支援SQLServer2008的PHP伺服器