2013年3月2日 星期六

在 IIS 上安裝與設定 PHP

一般我們開發 PHP,都是在所謂的 LAMP(Linux Apache MySQL PHP)的環境下執行,但是有時候為了方便,像我習慣本機有一個微軟的伺服器環境提供測試,這時候同時安裝兩套網頁伺服器或者資料庫有時候會比較亂,管理上也不方便,此外 IIS 圖形化介面的操作,對於初學者來說確實是比較容易學習的。

關於 IIS 的安裝與設定,請先參考先前寫的文章:

建置 ASP.NET 網頁伺服器 - 使用 IIS
http://shaocian.blogspot.tw/2013/03/aspnet-iis7.html

設定好 IIS 後,就開始來安裝 PHP,讓我們的 IIS 可以同時支援 ASP.NET 以及 PHP。

1.下載 PHP
http://php.net/downloads.php

Windows 底下使用的 PHP,必須下載 Windows 5.4.12 binaries and source 版本
(筆者撰寫此文時,最新版本是 5.4.12,請依照您當時的情況為主)

http://windows.php.net/download/#php-5.4

進入頁面後,又有兩種版本可以選擇:

  • VC9 x86 Non Thread Safe
  • VC9 x86 Thread Safe
基本上官方也不建議在正是產品上使用 Non Thread Safe 的版本,穩定性考量上,因此我們是選擇 Thread Safe 的版本。

P.S 目前給 Windows 使用的 PHP 官方版本只有提供 32 位元。

筆者習慣採用手動安裝(可以了解程式部屬的架構),而不去使用官網提供的安裝程式,所以我們下載 zip 壓縮檔的版本。

將所有檔案解壓縮到 C:\php 目錄底下



在 PHP5.3 以前,官方建議 IIS 使用 ISAPI 的方式來配置 PHP,不過之後就改使用 FastCGI 的方式,不用再手動複製檔案到 Windows 系統資料夾內了。

筆者下載5.4版本中,有兩個設定的安裝範例檔案,php.ini-development 以及 php.ini-production,穩定性上的考量,我們就使用 php.ini-production 這個設定範例,複製一份,將檔名改為 php.ini。

2.修改 php.ini 設定
extension_dir = "ext"
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_curl.dll
date.timezone = "Asia/Taipei"
(原本有註解的請拿掉分號「;」)

3.設定 IIS
開啟「Internet Information Services (IIS) 管理員」
左側站台的地方點選 Default Web Site,然後點選「處理常式對應」。
右側「動作」區塊中點選「新增模組對應」

照著以上圖例輸入,在「執行檔」選擇檔案的時候,記得將附檔名的部分選擇「*.exe」

將 PHP 加入 FastCGI 集合,點「是」
由於 IIS 預設是沒有偵測 php 副檔名文件的功能,因此為了方便,我們通常會新增一個預設文件 index.php,讓 IIS 自動識別該檔名代表首頁。

預設文件
點選右鍵「新增」

輸入 index.php

4.測試 PHP 文件執行
我們在 IIS 網頁目錄(以本站的範例來說是 D:\WebSites)底下新增一個 index.php 文件
內容如下:

<?php
    phpinfo();
?>

然後打開瀏覽器,輸入 http://localhost,如果可以順利看到如以下測試頁面,代表我們剛才設定的預設文件以及 PHP 執行上是沒問題的!


P.S 建議測試完畢後,將該文件刪除,因為 phpinfo() 顯示了非常多伺服器相關的資訊,不應該開放給外部的人看到。

1 則留言: