可能平时用惯了宝塔,导致我对windows服务器的配置竟然如此生疏,一个php网站迁移部署竟然反反复复测试了近一天时间,下面说说windows下使用iis6部署php程序的方法及这次部署遇到的一些问题。
环境及程序
服务器:server2012 r2中文版+iis6纯环境
环境搭建教程
1、部署php环境
php下载:https://windows.php.net/downloads/releases/archives/
选择你需要的php版本,windows环境请下载nts版,具体请参考《PHP版本中的VC6,VC9,VC11,TS,NTS区别》
将php包解压到 C盘下的php目录(当然这个你随意)
复制php.ini-development,并重命名为php.ini,自行决定开启扩展及配置
再配置一下环境变量,控制台中输入php -v应该就能看到php版本号,如果不正常请查看具体报错
补充:可能会存在msvcr100.dll丢失的情况,请自行下载vc++组件进行安装,下载:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=30679
2、IIS配置
iis管理安装
打开IIS,在右侧模块面板,选中“处理程序映射”
点右边的小字“添加模块映射”,依次输入:请求路径:*.php 模块:FastCgiModule 可执行文件: C:/php/php-cgi.exe 名称:*.php
如果你没有找到模块列表中的FastCgiModule,请在 控制面板 - 开启或关闭程序 中找到 web服务器 - 应用程序开发中勾选CGI后进行安装
然后修改默认文档讲index.php添加并放置第一个
3、伪静态
下载 ISAPI_Rewrite3_lite (免费版)
安装之后去IIS管理器中的ISAPI筛选器查看是否有创建ISAPI_Rewrite的规则,如果没有请手动创建并寻找到ISAPI_Rewrite安装路径中的ISAPI_Rewrite_x64/32.dll文件即可
修改安装目录中httpd.conf文件内容为你程序的伪静态规则(Apache版),下面带一段隐藏index.php的伪静态规则
RewriteBase /RewriteCond %{ REQUEST_FILENAME} !-fRewriteCond %{ REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
4、Mysql
数据库自己去百度下载进行安装使用即可
补充说明
网上的资源大多都有提到php5isapi.dll,但是为什么下载的php包中却没有呢,原因是php5.4以上就取消了php5isapi.dll文件
IIS重启命令:iisreset / restart
百度上关于server2012+iis6的资料甚少,虽然原理基本相同,但是iis6的功能界面与server2008和iis8有部分不同,建议在选择服务器环境的时候直接上iis8或者更高的版本,server2012+iis6的服务器环境配置属于中间层,以至于花了这么久的时间去配置部署一个很简单的php网站
当然,这个时候才能体现出宝塔,phpstudy这些一键端的管理软件的便捷性,果然印证了那句《让天下没有难配的服务器环境》
参考资料
《Windows Server2012 R2搭建PHP+Mysql网站环境完整步骤【实测可用】》
《IIS7 配置 PHP5.6》
《PHP的线程安全与非线程安全版本的区别》
《伪静态解决方案》文中虽然说的是wordpress,但是原理相同