今天跟着学习了如何在IIS下部署php项目,操做很简单,记录一下步骤!php
最后点击肯定就完成了web
点击进入便可windows
进入添加网站。api
添加注意事项如图所示!服务器
启动、浏览、重启、中止网站这个如图所示。yii2
须要说明的是 只要修改了配置就必须重启下网站yii
写入 index.php就行学习
选择“添加模块映射”测试
说明优化
请求路径:*.php * 知道正则就知道缘由了
模块:这个必须在启动IIS的时候,必须勾选"CGI",否则选择的时候找不到 FastCgiModule
到此为止 php项目已是在iis上部署好了【在项目根目录下会生成web.config文件】。可是对于那些须要使用伪静态的 好比 yii2 美化url路由 ....的话,还须要如下的操做:
百度URLREWRITE 下载并安装。
安装成功URLREWRITE后,关闭iis后再次启动。接着在页面就会出现url重写项。点击它便可
url重写作好以后,会吧配置都写在 web.config 文件里
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <defaultDocument> <files> <add value="index.php" /> </files> </defaultDocument> <handlers> <add name="php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\phpstudy\php\php-7.0.12-nts\php-cgi.exe" resourceType="File" /> </handlers> <rewrite> <rules> <rule name="wechat"> <match url="^\/wechat\/(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="/wechat/index.php/{R:1}" /> </rule> <rule name="已导入的规则 1"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
你们注意了 。我上面的配置有两个重点。
第一 解决了 “关于IIS上Yii2的url路由美化问题”
第二 解决了 “在IIS环境下,yii2web项目若是web目录下有多个应用的话,如何url路由美化的问题”。通过测试,若是我只配置(这个规则是导入web目录下的.htaaccess文件):
<rule name="已导入的规则 1"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule>
可是问题来了,我web下还有一个wechat目录,用于微网站的使用。在个人测试中,发现咱们项目上使用的已经美化的url路径直接报错“404”,后面通过咱们的调整,而后就把配置改为:
<rewrite> <rules> <rule name="wechat"> <match url="^\/wechat\/(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="/wechat/index.php/{R:1}" /> </rule> <rule name="已导入的规则 1"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite>
若是把这两个规则换个位置的话,结果会发现微网站的美化地址又是404
我这里解释下缘由:规则应该是从上往下配置,选择最优配置。
/********************************************************2019年-06-02**********************************************************************************************************************************************************************/
哇,已经有两万的阅读了,看来iis仍是很厉害的了。今天帮朋友处理window iis 管理php网站,又记住了几个经常使用的配置。因而乎,就上来更新下博客,便于后期操做。
1.文章上面的“处理程序映射”都是针对某个网站的配置的,其实更通用的方式是在
配置。同时咱们能够配置多个php版本。
2.程序映射还可使用脚本映射,对于脚本映射须要下载 php版本对应的isapi扩展,例如:php5isapi.dll,可是这个操做我我的不推荐使用,好像只有早期的版本能够支持。我在这里说明,是由于有可能会遇到有些老项目人家部署php时,是这么干的,就像今天我帮朋友处理同样,那上面有个项目就是这样干的
3.处理程序映射的时候,有个请求限制,能够将设置改成文件和文件夹
4.还能够下载phpmanager,用于管理php的配置
/********************************************************2019年-06-11*********************************************************************************************************************************************************************/
今天更新一下phpManager的使用说明,
问题:当安装一个php版本以后,咱们试着添加一份php.ini[修改php.ini.production or php.ini.development],而后重启iis,而后运行项目【譬如:phpmyadmin】,这时你会发现,缺乏扩展,但是你配置文件已经开启了扩展,那么问题出在哪呢?
解答:
一、其实windows 默认安装的话, Loaded Configuration File 即读取php.ini配置文件的路径。使用IIS,那就是必定要把 PHP.INI 放在 Windows 的系統路径下 (C:/WINDOWS 或 C:/WINNT) 。因此你修改你php所在目录下的配置文件是没有起到做用的,必须将文件复制到对应目录下 (参考:https://blog.csdn.net/letian003/article/details/5995856)。
二、那么这个时候phpManager就派上用场了,咱们能够在https://www.iis.net/downloads/community/2010/09/php-manager-for-iis-7 官网去下载对应iis版本的phpManager
三、下载完成,重启iis会发现phpManager在里面了,双击PHP Manager后,点击“Register new PHP Version”,而后选择好php目录中的php-cgi.exe,而后php.ini就会为适合IIS7.5的配置默认给你生成好了