今天跟着学习了如何在IIS下部署php项目,操作很简单,记录一下步骤!

1.启动iis服务器

  

最后点击确定就完成了

2.打开iis

点击进入即可

3.创建网站

进入添加网站。

添加注意事项如图所示!

启动、浏览、重启、停止网站这个如图所示。

需要说明的是  只要修改了配置就必须重启下网站

4.php设置

  ①添加默认文档

  

写入  index.php就行

②处理程序映射

  

选择“添加模块映射”

说明

  请求路径:*.php *  知道正则就知道原因了

  模块:这个必须在启动IIS的时候,必须勾选"CGI",不然选择的时候找不到 FastCgiModule

到此为止  php项目已经是在iis上部署好了【在项目根目录下会生成web.config文件】。但是对于那些需要使用伪静态的  比如  yii2 美化url路由 ....的话,还需要以下的操作:

1.安装urlrewrite

  百度URLREWRITE 下载并安装。

2.使用URL重写

  安装成功URLREWRITE后,关闭iis后再次启动。接着在页面就会出现url重写项。点击它即可

url重写做好之后,会吧配置都写在  web.config 文件里

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <system.webServer>
  4. <defaultDocument>
  5. <files>
  6. <add value="index.php" />
  7. </files>
  8. </defaultDocument>
  9. <handlers>
  10. <add name="php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\phpstudy\php\php-7.0.12-nts\php-cgi.exe" resourceType="File" />
  11. </handlers>
  12. <rewrite>
  13. <rules>
  14. <rule name="wechat">
  15. <match url="^\/wechat\/(.*)$" ignoreCase="false" />
  16. <conditions logicalGrouping="MatchAll">
  17. <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  18. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  19. </conditions>
  20. <action type="Rewrite" url="/wechat/index.php/{R:1}" />
  21. </rule>
  22. <rule name="已导入的规则 1">
  23. <match url="^(.*)$" ignoreCase="false" />
  24. <conditions logicalGrouping="MatchAll">
  25. <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  26. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  27. </conditions>
  28. <action type="Rewrite" url="index.php/{R:1}" />
  29. </rule>
  30. </rules>
  31. </rewrite>
  32. </system.webServer>
  33.  
  34. </configuration>

大家注意了 。我上面的配置有两个重点。

第一  解决了  “关于IIS上Yii2的url路由美化问题”

第二 解决了 “在IIS环境下,yii2web项目如果web目录下有多个应用的话,如何url路由美化的问题”。经过测试,如果我只配置(这个规则是导入web目录下的.htaaccess文件):

  1. <rule name="已导入的规则 1">
  2. <match url="^(.*)$" ignoreCase="false" />
  3. <conditions logicalGrouping="MatchAll">
  4. <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  5. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  6. </conditions>
  7. <action type="Rewrite" url="index.php/{R:1}" />
  8. </rule>

但是问题来了,我web下还有一个wechat目录,用于微网站的使用。在我的测试中,发现我们项目上使用的已经美化的url路径直接报错“404”,后面经过我们的调整,然后就把配置改成:

  1. <rewrite>
  2. <rules>
  3. <rule name="wechat">
  4. <match url="^\/wechat\/(.*)$" ignoreCase="false" />
  5. <conditions logicalGrouping="MatchAll">
  6. <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  7. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  8. </conditions>
  9. <action type="Rewrite" url="/wechat/index.php/{R:1}" />
  10. </rule>
  11. <rule name="已导入的规则 1">
  12. <match url="^(.*)$" ignoreCase="false" />
  13. <conditions logicalGrouping="MatchAll">
  14. <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  15. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  16. </conditions>
  17. <action type="Rewrite" url="index.php/{R:1}" />
  18. </rule>
  19. </rules>
  20. </rewrite>

如果把这两个规则换个位置的话,结果会发现微网站的美化地址又是404

我这里解释下原因:规则应该是从上往下配置,选择最优配置。

最后总结下:本文说明如何在IIS环境下配置php项目以及在iis优化yii2的url路由问题

/********************************************************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】,这时你会发现,缺少扩展,可是你配置文件已经开启了扩展,那么问题出在哪呢?

  解答:

      1、其实windows 默认安装的话, Loaded Configuration File 即读取php.ini配置文件的路径。使用IIS,那就是一定要把 PHP.INI 放在 Windows 的系統路径下 (C:/WINDOWS 或 C:/WINNT) 。所以你修改你php所在目录下的配置文件是没有起到作用的,必须将文件复制到对应目录下 (参考:https://blog.csdn.net/letian003/article/details/5995856)。

      2、那么这个时候phpManager就派上用场了,我们可以在https://www.iis.net/downloads/community/2010/09/php-manager-for-iis-7 官网去下载对应iis版本的phpManager 

      3、下载完成,重启iis会发现phpManager在里面了,双击PHP Manager后,点击“Register new PHP Version”,然后选择好php目录中的php-cgi.exe,然后php.ini就会为适合IIS7.5的配置默认给你生成好了

  

---------------------
作者:yangboom
来源:CNBLOGS
原文:https://www.cnblogs.com/YangJieCheng/p/8119505.html
版权声明:本文为作者原创文章,转载请附上博文链接!

[转]iis部署php项目的更多相关文章

  1. 通过IIS部署Flask项目

      本文主要介绍在Windows Server 2012R2上通过IIS部署Flask项目的过程,以及对TTFB延迟大问题的思考.关于如何申请云服务器,注册(子)域名,备案,开放云服务器端口,获取SS ...

  2. IIS部署.NET项目的有关事项_2015.07.02

    今天在做项目中的关于发送邮件的一些功能.在部署服务的时候遇到了一些奇葩的问题,基本上是和IIS有关的问题. 首先,项目是基于.NET Framework4.0 版本的,由于本人用的是一台新配置好的机器 ...

  3. iis部署php项目

    今天跟着学习了如何在IIS下部署php项目,操作很简单,记录一下步骤! 1.启动iis服务器 最后点击确定就完成了 2.打开iis 点击进入即可 3.创建网站 进入添加网站. 添加注意事项如图所示! ...

  4. IIS部署PHP项目并与mysql完美结合

    在上一篇文章中,提到iis与apache共用80端口,但是发现很多问题,例如 IIS网站有支付功能,而微信支付是不支持带有端口的网址的,虽然通过apche代理,在外面看来没有端口,可是内部还是避免不了 ...

  5. IIS部署php项目——discuz论坛

    1.安装CgiModule模块 首先,IIS要部署php项目,需要CgiModule模块的支持,所以首先我们要确认这个模块是否存在 打开IIS管理器: 我这里是存在的: 如果不存在,可以自行在控制面板 ...

  6. IIS部署Python-django项目

    1.安装CgiModule模块 首先,IIS要部署django项目,需要CgiModule模块的支持,所以首先我们要确认这个模块是否存在 打开IIS管理器: 我这里是存在的: 如果不存在,可以自行在控 ...

  7. 解决微信浏览器缓存站点入口文件(IIS部署Vue项目)

    最近开发的微信公众号项目中(项目采用Vue + Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-in ...

  8. 问题:IIS部署 MVC项目 (autofac) 错误解决

    http://www.cnblogs.com/yelaiju/p/3375168.html Could not load file or assembly 'System.Core, Version= ...

  9. IIS部署vue项目页面刷新404,url重写问题解决办法

    这里需要用到URL重写工具 --URL Rewrite(默认没有,需要自己下载安装) 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开IIS在管理 ...

随机推荐

  1. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)(使用OpenSSL的命令行)

    之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...

  2. iis7下查看站点日志对应文件夹

    原文:iis7下查看站点日志对应文件夹 IIS7下面默认日志文件的存放路径:%SystemDrive%\inetpub\logs\LogFiles 查看方法:点击对应网站 -> 右侧功能视图 - ...

  3. Win8 Metro(C#)数字图像处理--2.41彩色图像密度分割算法

    原文:Win8 Metro(C#)数字图像处理--2.41彩色图像密度分割算法  [函数名称]   彩色图像密度分割函数      DensitySegmentProcess(WriteableB ...

  4. 关于Tiff图片的编解码

    TiffBitmapEncoder 类 (System.Windows.Media.Imaging)https://msdn.microsoft.com/zh-cn/library/ms635161( ...

  5. C#添加应用路径到系统PATH变量

    var dllDirectory = @"C:/some/path"; Environment.SetEnvironmentVariable("PATH", E ...

  6. Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar

    原文:Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar 前面两期都在学习ProgressBar的使用,关于自定义ProgressBar的内容后期会继续学习的,本期先 ...

  7. eclipse 插件编写(三)

    参考:http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fworkbench_ ...

  8. char、char*、char**数组(有图,非常清楚)good

    平时都用的是char数组,基本忘记了char*数组和char**数组该怎么用了 char s1[10]; s1[0] s1[1]等都是char s1是char*,等同于&s1[0] char* ...

  9. 转载 《TypeScript 类型定义 DefinitelyTyped》

    快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中.   <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...

  10. qt获取网络ip地址的类

    最近在学习qt网络编程,基于tcp和udp协议. 看了一些别人的程序和qt4自带的例子,困扰我最大的问题就是获取ip的类,总结起来还挺多的. 主要介绍常用的QtNetwork Module中的QHos ...