手動安裝步驟

本安裝指南指導手動在一個 Microsoft Windows 的 web 伺服器下安裝和配置 PHP。安裝前需要從 http://www.php.net/downloads.php 下載 PHP 的 ZIP 二進位發佈包。

雖然目前有很多多合一的安裝包,而且也發佈了一個 Microsoft Windows 的 PHP 安裝程式,但是仍然建議會員花些時間自己手動安裝 PHP。因為這樣才可以更加瞭解這套系統,並能夠在需要的時候更方便的安裝 PHP 增加。

從舊版本的 PHP 升級: 上一版的手冊建議將 ini 和多個 DLL 檔案搬移到系統資料夾(例如 C:\WINDOWS)。這一步驟雖然簡化了安裝過程,卻導致升級上的困難。建議在使用新版本的 PHP 前移除所有這些檔案(比如從 Windows 系統資料夾移除 php.ini 和 PHP 關聯的 DLL 檔案)。務必在移除前備份這些檔案,因為這一動作可能破壞整個系統。原有的 php.ini 在安裝新版本的 PHP 時也可用來參考。不久會員便會明白,安裝 PHP 最好的模式便是將所有 PHP 有關的檔案都放入同一目錄,並在系統的 PATH 環境變量中設定此目錄。

MDAC 需求: 若果使用 Microsoft Windows 98/NT4,需要下載適用於系統最新版本的 Microsoft Data Access Components(MDAC)。MDAC 可在 http://msdn.microsoft.com/data/ 下載。需要 MDAC 的原因是 Windows 二進位包中編譯進了 ODBC 支援。

不論何種 web 伺服器,都需要先進行以下步驟:

將 PHP 壓縮包釋放到選取的目錄中。若使用 PHP 4,可以解壓縮到 C:\,壓縮包會被釋放到一個類似 php-4.3.7-Win32 的新目錄中。若使用 PHP 5,請解壓縮到 C:\php,因為其 ZIP 包內沒有類似 php-4.3.7-Win32 的目錄訊息。可以選取其它的路徑但最好不要用中間有空格的路徑(例如:C:\Program Files\PHP 就不太好),若果這樣做有些 web 伺服器會崩潰。

解壓縮後的目錄對應 PHP 4 和 5 是不同的。它們的目錄結構分別為:

例子 6-1. PHP 4 目錄結構

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- CLI 可執行程式 - 僅使用在指令行腳本
   |
   +--dlls                -- 某些增加需要的 DLL 檔案
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- PHP 的增加 DLL 檔案
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- SNMP 支援檔案
   |
   +--openssl             -- Openssl 支援檔案
   |
   +--pdf-related         -- PDF 支援檔案
   |
   +--sapi                -- SAPI(伺服器模組支援)DLL 檔案
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-..
   |
   +--PEAR                -- PEAR 的起始復本
   |
   |
   |-go-pear.bat          -- PEAR 安裝腳本
   |
   |-..
   |
   |-php.exe              -- CGI 可執行檔案
   |
   |-..
   |
   |-php.ini-dist         -- 預設的 php.ini 設定
   |
   |-php.ini-recommended  -- 推薦的 php.ini 設定
   |
   |-php4ts.dll           -- 核心 PHP DLL 檔案
   |
   |-...

或:

例子 6-2. PHP 5 目錄結構

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib
   |
   +--ext                 -- PHP 的增加 DLL 檔案
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--extras
   |  |
   |  +--mibs             -- SNMP 支援檔案
   |  |
   |  +--openssl          -- Openssl 支援檔案
   |  |
   |  +--pdf-related      -- PDF 支援檔案
   |  |
   |  |-mime.magic
   |
   +--pear                -- PEAR 的起始復本
   |
   |
   |-go-pear.bat          -- PEAR 安裝腳本
   |
   |-fdftk.dll
   |
   |-..
   |
   |-php-cgi.exe          -- CGI 可執行檔案
   |
   |-php-win.exe          -- 執行腳本時不跳出指令提示行視窗
   |
   |-php.exe              -- CLI 可執行程式 - 僅使用在指令行腳本
   |
   |-..
   |
   |-php.ini-dist         -- 預設的 php.ini 設定
   |
   |-php.ini-recommended  -- 推薦 php.ini 設定
   |
   |-php5activescript.dll
   |
   |-php5apache.dll
   |
   |-php5apache2.dll
   |
   |-..
   |
   |-php5ts.dll           -- 核心 PHP DLL 檔案
   |
   |-...

請注意它們之間的不同和相似之處。PHP 4 和 PHP 5 都有一個 CGI 可執行檔案、一個 CLI 可執行檔案和伺服器模組,但是它們位於不同的資料夾和/或有著不同的命名。PHP 4 將伺服器模組放在 sapi 資料夾,而 PHP 5 並沒有此目錄,它的伺服器模組檔案位於 PHP 根資料夾中。PHP 5 的增加支援 DLL 檔案也並沒有放在一個單獨的目錄中。

注: 在 PHP 4 中,需要將位於 dllsapi 資料夾中的檔案搬移到主資料夾中(例如 C:\php)。

下面是 PHP 4 和 PHP 5 附帶的伺服器模組清單:

  • sapi/php4activescript.dll (php5activescript.dll) - ActiveScript 引擎,容許將 PHP 內嵌 Windows 套用程式中。

  • sapi/php4apache.dll(php5apache.dll) - Apache 1.3.x 模組。

  • sapi/php4apache2.dll(php5apache2.dll) - Apache 2.0.x 模組。

  • sapi/php4isapi.dll(php5isapi.dll) - ISAPI 模組,支援 ISAPI 相容的 web 伺服器,比如 IIS 4.0/PWS 4.0 或更新版本。

  • sapi/php4nsapi.dll(php5nsapi.dll) - Sun/iPlanet/Netscape 伺服器模組。

  • sapi/php4pi3web.dll(PHP 5 無此模組) - Pi3Web 伺服器模組。

伺服器模組比 CGI 可執行程式提供了更好的效能和更多的功能。CLI 版本是為使用 PHP 指令行腳本而設計的。關於 CLI 的更多訊息可以在 PHP 的指令行模式一章中找到。

警示

SAPI 模組在 4.1 中有較多的增強。但是,在老系統中可能會產生伺服器錯誤,或導致伺服器的其它模組停止工作,比如 ASP。

CGI 和 CLI 可執行檔案以及 web 伺服器模組都需要 php4ts.dllphp5ts.dll)。必須確認該檔案可以在 PHP 安裝路徑中找到。對該 DLL 的搜尋順序為:

  • 呼叫 php.exe 時所在的目錄,或是若使用 SAPI 模組時,web 伺服器的目錄(例如 C:\Program Files\Apache Group\Apache2\bin)。

  • 任何在 Windows 的 PATH 環境變量中特殊的目錄。

要讓 php4ts.dll / php5ts.dll 能正確被搜尋到,有下面三個選取:複製該檔案到 Windows 系統目錄,複製該檔案到 web 伺服器的目錄,或是把 PHP 目錄(例如 C:\php)新增到 PATH 環境變量中。為了將來更好的維護,建議使用最後一個選取,將 PHP 目錄新增到 PATH 環境變量中,因為這樣更便於將來升級 PHP。在相應的常見問題解答項目中可以瞭解如何將 PHP 目錄新增到 PATH 環境變量中。

下一步是為 PHP 設定一個有效的配置檔,php.ini。在 ZIP 包中有兩個 ini 檔案,php.ini-distphp.ini-recommended。建議使用 php.ini-recommended,因為在該檔案中改善了效能和安全。請仔細閱讀該檔案中的注解,因為它從 php.ini-dist 修改而來,會對設定產生較大的影響。例如將 display_errors 設定為 off,將 magic_quotes_gpc 設定為 off。除了閱讀這些部分,還可以學習一下 ini 設定,並手動設定每一個配置項目。若果想要最安全的設定,這是最好的方法,雖然 PHP 在預設配置下也是很安全的。複製所選取的 ini 檔案到 PHP 能找到的目錄中,並將其更名為 php.ini。PHP 搜尋 php.ini 的路徑在配置檔一節已有介紹。

若果使用 Apache 2,更簡單的選取是使用 PHPIniDir 指令(請閱讀在 Apache 2 下的安裝);若不是,最好的選取是設定 PHPRC 環境變量。它在此常見問題解答項目中進行了解釋。

注: 若果在 Windows NT、2000、XP 或 2003 中使用 NTFS 分區,請確認運行 web 伺服器的會員有權限讀取 php.ini(例如將其設定為 Everyone 可讀)

下面的步驟是可選的:

  • 編輯新的 php.ini 檔案。若果計劃使用 OmniHTTPd,不要執行下一步。設定 doc_root 並指向 web 伺服器的 document_root。例如:

    doc_root = c:\inetpub\wwwroot // for IIS/PWS
    
    doc_root = c:\apache\htdocs // for Apache

  • 選取 PHP 載入的增加庫。請閱讀關於 Windows 增加一節以瞭解如何設定增加庫,以及哪些功能已經內建無需增加庫。請注意建議在全新安裝時先不要在 php.ini 中加載任何增加庫,首先要保證 PHP 自身能夠標準工作。

  • 在 PWS 和 IIS,可以設定 browscap 配置:在 Windows 9x/Me 中指向 c:\windows\system\inetsrv\browscap.ini,在 NT/2000 中指向 c:\winnt\system32\inetsrv\browscap.ini,在 XP 中指向 c:\windows\system32\inetsrv\browscap.ini。要得到最新版本的 browscap.ini,請閱讀如下常見問題解答項目

PHP 現在已經安裝在系統中了。接下來一步是選取一個 web 伺服器,並為之啟用 PHP。請在本章目錄中選取一個 web 伺服器以瞭解更詳細的安裝步驟。