iis部署php項目


 

 

 

 

 

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

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM