把微信小程序PHP微服务从CentOS的转到windows的IIS7.5上踩过的坑

由于最近百度云的备案限制,要求用百度云服务器必须得域名也得转到百度备案(域名是阿里云备案的)才行,导致最近两天微信小程序的web请求频繁出错,具体表现在开发者工具的request请求会出现net::ERR_SSL_VERSION_INTERFERENCE的错误,微信端会出现fail ssl hand shake error的错误,10次访问大概4次这种错误。导致根本无法使用。
昨天彻底不能用了。所以需要将原来在CentOS7.5+Apache2.4+PHP7运行的服务转到一个已有的阿里云服务器上现运行着Windows2008R2+IIS7.5及其他的Asp.Net应用。

第一步:开始在IIS上安装PHP7.0,参考了几个教程

https://www.cnblogs.com/webmen/p/5800048.html),
按流程下载PHP7,放到:C:/PHP7中。
下载安装PHP Manager for IIS 7,下载地址:http://www.iis.net/downloads/community/2010/09/php-manager-for-iis-7
下载完后没找到安装的内容,后来参考其他教程,下载的压缩包中有个releases文件夹里面有数字6文件夹,再打开有两个文件,然后全部修改为msi后缀,点击安装就行了。PHPmanager安装
安装完后IIS中就有了。在这里插入图片描述

第二步:然后配置php.ini

配置了,最后发现几个重要地方需要配置。要不然大概率会出现No input file specified。要查看php是否正常运行,就去php所在目录cmd然后php -v命令,如果出现php的版本信息就能正常运行,要么就会报错。如果不报错,但是还是无法访问phpinfo()则去看下php.ini里面的路径里的错误日志。
具体如下:
open_basedir=“指定目录” 这个是你需要PHP访问的目录一般是项目目录我的在D:/PHP。另外要将这个目录设置一下权限,让IIS_USRE可以用。 upload_tmp_dir = "D:/PHP"这个是上传文件的默认临时路径,默认可能会是C:/Windows/Temp/,但是我试过没有办法用,即使是对文件夹给IIS_USER的权限。

第三步:安装SSL证书

至此php项目可以访问了。但是还要加上证书。去阿里云申请的免费证书下载IIS版本的。
在IIS的证书里面安装了好几次,结果每次安装完一刷新,证书就没了,又只剩系统默认的证书了。然后又去MMC里面一顿安装,安装完还是啥都没有。鼓捣了半天,后来脑子一抽,重启服务器,再重新安装证书。好了。去IIS绑定443的时候就出来自己安装的证书了。

结尾

小程序又可以愉快的访问了。