IIS7中多個版本php共存的方法


php可以在官網下載http://windows.php.net/download/,php 5.4之前的版本似乎沒有了,舊版本我是其它地方找的。

我們將使用fastcgi模塊,直接下載非線程安全(Non Thread Safe)的版本,效率比較高.x86是32位的,x64是64位的別下錯了,然后點zip下載。

 

下載解壓放到某個目錄,比如:

E:\php7.0.3\

E:\php5.5.30\

E:\php5.2.6\

php.ini的配置這里就不說了,原來該怎么設置怎么設置。

 

 

步驟

1.打開IIS 7。 IIS最上層>處理程序映射

 

2.右邊 添加模塊映射

 

 

3.在彈出的窗口中

路徑寫*.php 模塊選FastCgiModule,可執行文件是php目錄下的php-cgi.exe

名稱隨便填,為了好記可以填php版本名稱,然后確定。

 

 

再添加幾次 把多個版本的php都添加進去

 

4.由於是點IIS最上層添加,而不是點某個網站添加,所以每個網站目錄不會自動生成一個web.config文件。我們可以自己添加一個utf-8編碼的web.config文件放到網站目錄下,用於調用不同版本的php,不管有沒有多個版本的php,都需要這么一個web.config文件,內容如下:

1
2
3
4
5
6
7
8
9
10
11
<? xml  version="1.0" encoding="UTF-8"?>
< configuration >
     < system.webServer >
         < handlers >
             < remove  name="php5.5.30" />
             < remove  name="php7.0.3" />
             < remove  name="php5.2.6" />
             < add  name="php5.2.6" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\php7.0.3\php-cgi.exe" resourceType="Unspecified" requireAccess="Script" />
         </ handlers >
     </ system.webServer >
</ configuration >

主要就是scriptProcessor(腳本處理器)路徑不同,決定了調用了不同版本的php。

<remove name="php5.5.30" />也很重要,先把所有版本的php都移除一遍(這里的"name=" 就是之前填的名稱)。再add name=,確保調到的是需要的版本。

 

注意:如果這邊remove只有3個,而實際上你加了5個版本的php的話,為了確保調用到正確的版本,應該把另兩個加進去。

 

然后就可以了。有新站的話就把這個web.config拷到站點的目錄里,再修改下scriptProcessor的路徑就可以了。

 

 

我這幾個php共用的是一個MySql,版本是5.6.24,能正常使用。

 

由於php不同版本間是不怎么向后兼容的,比如php5.6以后不支持mysql_*函數連接mysql數據庫,只支持mysqli_*和pdo_*等,所以多版本共存還是比較有意義的。


免責聲明!

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



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