iis部署php項目

 

 

 

 

 

今天跟着學習瞭如何在IIS下部署php項目,操做很簡單,記錄一下步驟!php

1.啓動iis服務器

  

最後點擊肯定就完成了web

2.打開iis

 

點擊進入便可windows

3.建立網站

進入添加網站。api

添加註意事項如圖所示!服務器

啓動、瀏覽、重啓、中止網站這個如圖所示。yii2

須要說明的是  只要修改了配置就必須重啓下網站yii

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】,這時你會發現,缺乏擴展,但是你配置文件已經開啓了擴展,那麼問題出在哪呢?

  解答:

      一、其實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的配置默認給你生成好了

 

 

相關文章
相關標籤/搜索