今天跟着學習瞭如何在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的配置默認給你生成好了