说说缘由,我的服务器是windows server2012,之前用IIS搭建了两个项目,但是我现在想在服务器上搭建一个php的项目,于是用了phpstudy集成环境工具部署了php项目,但是发现apache 和IIS出现80端口冲突。网上那些IIS和apache做端口映射的方法太复杂不想用,所以想着直接在IIS上运行php程序。
非IIS环境下,要运行一个php项目,要有以下几个环境:apache(或tomcat)+php+mysql;所以对于大部分人来说使用phpstudy或者宝塔服务器这种集成环境,可以一键安装部署;
而如果想要在IIS环境下运行PHP项目,除了安装IIS,还需要单独安装php以及mysql。所以我用了一个偷懒的方法,先安装IIS,然后安装phpstudy,接下来就开始在IIS中配置PHP环境了。
之前找了几个不错的IIS配置php的教程,但是都没有完全解决我的问题,所以我重新汇总总结一下;
优快云博客上找到的相关教程,具有参考意义:
2、安装配置IIS+MySQL+PHP环境的详细教程(之篇二PHP安装);
我先在phpstudy集成工具里面成功部署了我的php项目:
然后我开始按照上述教程配置了一遍,我的配置过程如下:
1、安装php以及mysql:
先在php管网下载安装包并解压,然后复制php.ini-production并改名为php.ini
php安装包下载地址:https://windows.php.net/download/ window Server 64位系统请下载: x64 Non Thread Safe 版本。32位请下载 x86 Non Thread Safe版本;
(因为我安装的phpstudy已经自动安装好了php程序(php7.3.4版本),所以我不需要再下载php和mysql,在集成工具中直接找到已安装好的php目录即可)
phpstudy下载地址:https://m.xp.cn/
2、IIS添加php项目网站
这一步不再详细说明,就和常规部署网站一样的。不会的请参照别的教程;
网站添加完成之后,必须要给网站添加默认文档”index.php“。否则你直接点击浏览网站,是会报错的。
具体方法是,选中网站,点击【默认文档】进入后,在右上角点击【添加】然后输入index.php点击确定。
3、IIS配置PHP运行环境
IIS左侧选择你刚刚添加的网站,然后双击【处理程序映射】
再单击右侧【添加模块映射】按钮,在弹出框中填写如下信息并单击【确定】按钮保存。
在弹出的对话框中点击【是】完成php程序映射的配置。
完成php模块映射配置之后,还需要配置”FastCGI设置“的参数,IIS左侧点击主目录进入IIS主页,然后点击【FastCGI设置】
然后选择之前添加的映射模块路径,点击【编辑】,然后再弹出的对话框中,找到【监视对文件所做的更改】项并选择php程序目录下的php.ini配置文件;
按照其他教程,按理说应该是完成了配置,于是乎我打开网站,发现报了一个404.3的错误,压根就没法访问;
4、解决404.3报错问题
于是乎我又按照我之前提到过的教程检查了一遍。另一篇文章中提到需要修改php网站项目目录下生成的web.config。于是我照着做,发现还是不对。经过反复检查,才发现原来web.config文件中少了个【*】;
原配置文件是这样:
<handlers>
<add name="php" path=".php" verb="*" modules="FastCgiModule" scriptProcessor="C:\phpstudy_pro\Extensions\php\php7.3.4nts\php-cgi.exe" resourceType="File" />
</handlers>
只需要在path=".php"改为path="*.php",加上一个【*】通配符即可;
如果你的web.config目录下没有下面这段配置,请添加上:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\php7.3.4\php-cgi.exe" resourceType="File" requireAccess="Script" />
</handlers>
<defaultDocument>
<files>
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
配置文件中对应的含义如下:
保存好web.config配置文件,然后再次打开网站就可以访问了。
如果你的php网站项目涉及到伪URL规则的,可以把phpstudy中已生成好的配置拷贝到web.config中即可。