[转]iis部署php项目
閱讀目錄
- 1.啟動iis服務器
- 2.打開iis
- 3.創建網站
- 4.php設置
- ①添加默認文檔
- ②處理程序映射
- 1.安裝urlrewrite
- 2.使用URL重寫
?
?
?
?
?
?
今天跟著學習了如何在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 文件里
<?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
我這里解釋下原因:規則應該是從上往下配置,選擇最優配置。
?
最后總結下:本文說明如何在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
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
轉載于:https://www.cnblogs.com/admans/p/11109393.html
總結
以上是生活随笔為你收集整理的[转]iis部署php项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RabbitMQ 快速入门
- 下一篇: C++线程同步之临界区