【博客开篇】服务器配置: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”选项
安装方式一(推荐)
如果服务器可以访问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.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了。
至此,我们就成功的完成了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这样的环境配置,这个以后再补写相关记录了。
【博客开篇】服务器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)的更多相关文章
- 博客开篇:随笔《从windows到linux的转变》。
在QQ群里讨论到了WINDOWS和LINUX.MAC,用手机码了如下回复,索性转过来当做博客的开篇.:) unix 和linux 在外很火的主要原因是开源,国外崇尚自由的精神是从出生就在细胞里的,而w ...
- 我的学习笔记之node----node.js+socket.io实时聊天(1) (谨此纪念博客开篇)
本想着从hello word开篇,也确实写了相关学习笔记.各种原因吧,现在又着急写出作品,便作罢. 这里将记录一个node.js+socket.io的实时聊天程序.(当然我也是跟着网上各种教程资料学习 ...
- 个人技术博客——linux服务器配置以及flask框架
本次的软件工程实践,我负责我们组后台服务的搭建,我选用了bandwagon的服务器,安装的是Debian GNU/Linux,全程在root用户下操作,后端服务是用python的flask框架,数据库 ...
- CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程): http://www.osyunwei.com/archives/1537.html 准备 ...
- fn先生开篇博客
开篇博客,也不清楚要写点啥nie,以前好像在CSDN上写过一点,但是由于本人工作号一直在变,忘了CSDN上的账号密码(尴尬...不确定这个以后会不会再次丢失呀),重新在开始吧. 记得以前,一直有朋友说 ...
- 一、Java多人博客系统-开篇
作为一个程序员,工作之外的不断学习是必须的.这个项目是我个人课外学习和练手的项目.最开始是一个个人网站.当时发现京东云可以免费部署网站的,就立即写了一个网站,当时就使用jsp技术,可以实现发布博客.评 ...
- 开篇~试试word写博客
word发布博客设置,mark一下 原帖地址:http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html word代码高亮插件:h ...
- Android应用开发-小巫CSDN博客客户端开发开篇
2014年9月8日 八月十五 祝各位中秋节快乐 小巫断断续续花了几个星期的时间开发了这么一款应用——小巫CSDN博客,属于私人定制的这样的一款应用,整个客户端的数据全部来自本人博客,是通过爬取本人博客 ...
- SAE+WordPress快速搭建个人博客
前些天一时冲动,买了个域名,我想总不能放着不用吧,干脆就搭建了一个个人博客.下面我把搭建的过程分享给大家.注意,此文并不是攻略,只是为了记录下这个从无到有的过程,当然,假如解决了你的疑惑,那当然是极好 ...
随机推荐
- VS调试快捷键配置更改
VS进行调试时,默认情况下需按下Fn+F5等组合按键,手短的用起来很不便利 如何去掉组合键只按下F5? 解决:即按下Fn+Esc,然后就可以直接按下F1-F12使用VS的快捷键,如果想回到组合键也是同 ...
- EasyTouch和NGUI的使用心得
今天来写一写Unity3D中两个比较常用插件:EasyTouch和NGUI的学习心得.我用的版本分别是EasyTouch 3.1.1和NGUI 3.6.0,下面也是对这两个版本的学习心得. 1. Ea ...
- 联想扬天3900c电脑BIOS设置U盘启动图文教程
有联想扬天3900c的用户反映说,制作好U大侠U盘后,按快捷键却识别不到U盘,不能进行U盘启动,这是怎么回事呢?其实这是BIOS设置的问题,下面U大侠教大家如何对联想扬天3900c电脑进行BIOS设置 ...
- bash: ./LM35_make_fs: Permission denied 解决办法
执行命令的时候 ./LM35_make_fs 遇到 permission denied, bash: ./LM35_make_fs: Permission denied权限的问题,可以运行 ls -l ...
- JavaScript最后的课程笔记
一.快捷位置和尺寸 DOM已经提供给我们计算后的样式,但是还觉得不方便,所以DOM又提供给我们一些API: ele.offsetLeft ele.offsetTop ele.offsetWidth e ...
- 2018-2019-2 20175227张雪莹《Java程序设计》实验三 《敏捷开发与XP实践》
2018-2019-2 20175227张雪莹<Java程序设计> 实验三 <敏捷开发与XP实践> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号: ...
- jmeter问题
1.使用jmeter传入json参数报错 具体场景:使用python+request执行接口测试,正常:把python的参数直接复制,使用jmeter执行接口测试,提示json格式错误. {...,& ...
- Windows中的备份和还原
1:增量备份 (查看文件属性,只备打了勾的,备完后把勾取消掉,修改后勾都会打上) 2:差异备份(备份有勾的 ,备份完后不会取消勾) 周一:备一 周二:备二 周三:备三 周四:备三,四
- Windows下安装MySQL8
转自:https://blog.csdn.net/star_in_shy/article/details/82691330 感谢! 一.MySQL官网下载 (一)MySQL下载地址:https:// ...
- 微信公众号生成带参数的二维码asp源码下载
晚上闲着没事,一个朋友联系,让帮忙写一个微信公众号利用asp生成带参数的二维码,别人扫了后如果已经关注过该公众号的,则直接进入公众号里,如果没关注则提示关注,关注后自动把该微信用户资料获取到并且保存入 ...