【博客開篇】服務器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)


現下流行LAMP,如果選擇Windows服務器,那么一般都會選擇IIS+Asp.Net+SQL Server(可以簡稱為WINS),這些配置起來,都是非常方便的。

但也有一些特殊的服務器配置,例如:Windows 2008 R2 x64 + IIS 7 + PHP + SQL Server 2008 R2 x64(簡稱為WIPS),將Asp.Net換為PHP,原本以為很簡單的一件事,結果折騰了好幾天才搞定。

為了給其他人留下一點前車之鑒,特寫此文。

 

相關理論

1. IIS支持多種方式來擴展語言,對於IIS7來說,通過FastCGI方式來執行PHP文件

2. PHP通過配置文件中的“extension”項,擴展支持一些功能,但目前PHP本身不再提供支持MS SQL Server的組件,幸好微軟提供了(但這里有個大大的陷阱)

3. 微軟提供的PHP的擴展組件,支持訪問MS SQL Server,需要Visual Studio C++ Redistributable的支持,這個微軟也提供了

4. 還需要微軟的MS SQL Server Native Client作為驅動

通過上述一環扣一環,就可以實現在Windows服務器上,在IIS+PHP的環境下,訪問MS SQL Server了。

 

細數幾個大坑

坑1:訪問SQL Server 2008 R2,需要安裝Microsoft SQL Server 2012 Native Client

坑2:微軟提供的PHP組件,只支持32位,也就是x86平台;雖然PHP自身提供了支持x64平台的,但是這兩個是配不上的

坑3:若一定要在Windows Server 64bit(x64),PHP選擇x64,則不能選擇IIS;替代選項是Apache,而且PHP SQL Server組件需要特殊定制的非官方版;而且Apache官方不提供Windows版了,要去第三方下載

坑4:PHP有TS、NTS之分,又有x86、x64之分;Visual Studio C++ Redistributable則有2008、2010、2012、2015之分,而且也有x86、x64之分,不同的Visual Studio C++ Redistributable版本對應不同的PHP版本。一個不小心,就掉坑里了

版本對應關系:

1、選擇IIS,則PHP版本必須選擇x86、nts

2、PHP版本號有VC*這樣的內容,和Visual Studio C++ Redistributable對應關系是:VC9-VS2008 SP1、VC11-VS2012、VC14-VS2015

     PHP版本選擇x86,則Visual Studio C++ Redistributable也必須是x86;反之,則都必須選擇x64

 

准備項

1、IIS擴展支持FastCGI,如下圖,必須勾選上“CGI”選項

AddCGIInIIS7

 

安裝方式一(推薦)

如果服務器可以訪問Internet的話,推薦選擇Web Platform Installer,省心省力,但是只有5.2.17和5.3.5兩個版本可以選。

1、打開網址:http://www.microsoft.com/web/platform/phponwindows.aspx

WebPlatformInstallerForPHP

2、選擇好版本,點擊對應的按鈕,進入如下界面,這里以5.3.5版本為例

WebPlatformInstallerPHP535

3、點擊“Install Now”,可以下載獲得一個PHP53.exe文件,運行之,可以到如下界面,點擊“Install”

WebPlatformInstallerPHP535_1

4、這里會列出需要安裝的組件,點擊“I Accept”

WebPlatformInstallerPHP535_2

5、接下來是漫長的安裝過程,如果中途失敗了,繼續從第3步開始,按照相同節奏來一次,直至全部安裝成功

WebPlatformInstallerPHP535_3

安裝成功后,可以看到具體的安裝的組件。

WebPlatformInstallerPHP535_4

6、安裝成功后,可以通過PHP Manager來查看安裝后的PHP路徑

 

安裝方式二(PHP Manager或手工)

1、安裝Microsoft SQL Server 2012 Native Client,安裝文件可以去微軟官網下載

2、下載PHP包,一定要選擇x86和nts的,並解壓文件到“Program Files (x86)”目錄下。

3、根據PHP包的VC版本,安裝Visual Studio C++ Redistributable,請選擇x86版本,VS的版本號,請參考上述對應關系,安裝文件可以去微軟官網下載

4、去微軟官網下載Microsoft Drivers for PHP for SQL Server,也就是PHP的SQL訪問組件,執行解壓出DLL文件

5、將PHP的SQL訪問組件,根據PHP版本號挑選出nts類型的dll,復制到PHP錄下的ext子文件夾

6、推薦安裝PHP Manager,可以協助更快的配置,安裝文件請自行搜索去

7、啟動IIS管理工具,選擇“PHP Manager”

IISPHP_1

8、通過PHP Manager,通過“Register new PHP version”,選擇PHP目錄下的php-cgi.exe

IISPHP_4

9、啟動PHP Extensions,點擊“Enable or disabled an extension”,啟動PHP的擴展組件,這樣就可以啟動PHP訪問SQL的組件

IISPHP_5

10、其他PHP配置項,建議直接編輯PHP.INI文件,根據你的實際情況,增加如下內容:

[WebPIChanges]
error_log=C:\Windows\temp\PHP53_errors.log
upload_tmp_dir=C:\Windows\temp
session.save_path=C:\Windows\temp
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=300
date.timezone=Asia/Shanghai
extension_dir="C:\Program Files (x86)\PHP\v5.3\ext\"

[ExtensionList]
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_imap.dll
extension=php_tidy.dll

extension=php_pdo_sqlsrv.dll

extension=php_sqlsrv.dll

11、這時候就可以開始檢測結果,打開PHPinfo文件,在“Registered PHP Streams”,我們可以看到sqlsrv,這就代表PHP可以訪問SQL Server了。

IISPHP_3

至此,我們就成功的完成了Windows 2008 R2 x64 + IIS 7.0 + PHP 5.3.2 + SQL Server 2008 R2 x64的環境配置了。

當然,這樣的環境,其實是運行在32位x86的環境中。

如果真的要運行在64位x64的環境中,則必須是Windows 2008 R2 x64 + Apache 2.4 + PHP 5.3.2 + SQL Server 2008 R2 x64這樣的環境配置,這個以后再補寫相關記錄了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM