服务器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)
>首页 -> 社会专题 -> 硬件网络 2018-07-08 来源:知乎 作者:林志峰 【】 浏览:732

服务器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)

现下流行LAMP/lnmp ,如果选择Windows服务器,那么一般都会选择IIS+Asp.Net+SQL Server(可以简称为WINS),这些配置起来,都是非常方便的。

但也有一些特殊的服务器配置,例如:Windows 2008 R2 x64 + IIS 7 + PHP + SQL Server 2008 R2 x64(简称为WIPS),将http://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”选项

安装方式一(推荐)

如果服务器可以访问Internet的话,推荐选择Web Platform Installer,省心省力,但是只有5.2.17和5.3.5两个版本可以选。

1、打开网址:http://www.microsoft.com/web/platform/phponwindows.aspx

2、选择好版本,点击对应的按钮,进入如下界面,这里以5.3.5版本为例

3、点击“Install Now”,可以下载获得一个PHP53.exe文件,运行之,可以到如下界面,点击“Install”

4、这里会列出需要安装的组件,点击“I Accept”

5、接下来是漫长的安装过程,如果中途失败了,继续从第3步开始,按照相同节奏来一次,直至全部安装成功

安装成功后,可以看到具体的安装的组件。

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”

8、通过PHP Manager,通过“Register new PHP version”,选择PHP目录下的php-cgi.exe

9、启动PHP Extensions,点击“Enable or disabled an extension”,启动PHP的扩展组件,这样就可以启动PHP访问SQL的组件

10、其他PHP配置项,建议直接编辑PHP.INI文件,根据你的实际情况,增加如下内容:

[WebPIChanges]error_log=C:\Windows\temp\PHP53_errors.logupload_tmp_dir=C:\Windows\tempsession.save_path=C:\Windows\tempcgi.force_redirect=0cgi.fix_pathinfo=1fastcgi.impersonate=1fastcgi.logging=0max_execution_time=300date.timezone=Asia/Shanghaiextension_dir="C:\Program Files (x86)\PHP\v5.3\ext\"[ExtensionList]extension=php_mysql.dllextension=php_mysqli.dllextension=php_mbstring.dllextension=php_gd2.dllextension=php_gettext.dllextension=php_curl.dllextension=php_exif.dllextension=php_xmlrpc.dllextension=php_openssl.dllextension=php_soap.dllextension=php_pdo_mysql.dllextension=php_pdo_sqlite.dllextension=php_imap.dllextension=php_tidy.dllextension=php_pdo_sqlsrv.dllextension=php_sqlsrv.dll

11、这时候就可以开始检测结果,打开PHPinfo文件,在“Registered PHP Streams”,我们可以看到sqlsrv,这就代表PHP可以访问SQL Server了。

至此,我们就成功的完成了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这样的环境配置,这个以后再补写相关记录了。

没有对比就没有伤害,自己走过的路才是真实的。

您看到此篇文章时的感受是:
Tags: 责任编辑:佚名
免责申明: 除原创及很少部分因网文图片遗失而补存外,本站不存储任何有版权的内容。你看到的文章和信息及网址索引均由机器采集自互联网,由于时间不同,内容可能完全不同,请勿拿本网内容及网址索引用于交易及作为事实依据,仅限参考,不会自行判断者请勿接受本站信息,本网转载,并不意味着赞同其观点或证实其内容的真实性.如涉及版权等问题,请立即联系管理员,我们会予以更改或删除,保证您的权利.对使用本网站信息和服务所引起的后果,本网站不作任何承诺.
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论:0条】 【关闭】 【返回顶部
更多
上一篇Windows 2008 实例使用路由和远程.. 下一篇安全检测网吧常用的命令和技巧
密码: (新用户注册)

最新文章

图片主题

热门文章

推荐文章

相关文章

便民服务

手机扫描

空间赞助

快速互动

论坛互动
讨论留言

有事联系

有哪个那个什么的,赶紧点这里给DOVE发消息

统计联系

MAIL:gnlt@Dovechina.com
正在线上:1360

版权与建议

任何你想说的