Windows下配置Apache支援PHP

來源:互聯網
上載者:User

思路:

首先安裝 Apache ,並確保 Apache 能正常運作。安裝具體步驟方法可參考我的另一篇文章:《Windows下安裝Apache2.2.x》(http://indian.blog.163.com/blog/static/1088158200755105546704)。

其次就是安裝 PHP ,並配置 Apache 支援 PHP 。

有兩種方法在 Windows 下讓 Apache 支援 PHP :使用Windows的環境變數或者 Apache 自身的支援。

安裝前需要從 http://www.php.net/downloads.php 下載
PHP 的 ZIP 二進位發布包。雖然目前有很多多合一的安裝包,而且也發布了一個 Microsoft Windows 的 PHP
安裝程式,但是仍然建議使用者花些時間自己手動安裝PHP。因為這樣才可以更加瞭解這套系統,並能夠在需要的時候更方便的安裝 PHP 擴充。

方法一:使用Windows 環境變數

1、第一步,要確保Apache能正確找到PHP和相關的DLL擴充。

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

將下載下來的 PHP 5.2.x 的ZIP壓縮包解壓到目的目錄,比如 C:\php
,我是解壓到了 E:\usr\php 。可以選擇其它的路徑但最好不要用中間有空格的路徑(例如:C:\Program Files\PHP
就不太好),如果這樣做有些 網頁伺服器會崩潰。

PHP在Apache下的安裝可以以伺服器模組方式或 CGI 可執行程式方式安裝,還有個 CLI 版本是為使用 PHP 命令列指令碼而設計的。伺服器模組比 CGI 可執行程式提供了更好的效能和更多的功能。所以我主要介紹伺服器模組安裝方式。

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

  • 調用 php.exe 時所在的目錄,或者若使用 SAPI 模組時,網頁伺服器的目錄(例如 C:\Program Files\Apache Group\Apache2\bin)。
  • 任何在 Windows 的 PATH 環境變數中指定的目錄。

要讓 php4ts.dll / php5ts.dll
能正確被搜尋到,有下面三個選擇:複製該檔案到 Windows 系統目錄;複製該檔案到 網頁伺服器的目錄;或者把 PHP 目錄(例如
C:\php)添加到 PATH 環境變數中。為了將來更好的維護,建議使用最後一個選擇,將 PHP 目錄添加到 PATH
環境變數中,因為這樣更便於將來升級 PHP。

①將 PHP 目錄加入到 Windows 路徑 PATH 中去

在 Windows NT,2000,XP 和 2003 下:

  • 進入控制台並開啟“系統”表徵圖(開始 -> 設定 -> 控制台 -> 系統,Windows XP/2003 中是:開始 -> 控制台 -> l系統)
  • 選擇“進階”標籤頁
  • 點擊“環境變數”按鈕
  • 在“系統變數”欄中
  • 找到 Path 這一項(可能需要向下滾動才能找到)
  • 滑鼠雙擊 Path 這一項
  • 在最後加入你的 PHP 目錄,包括前面的英文分號“;”(例如:;C:\php ,我的路徑是 ;E:\usr\php )
  • 點擊“確定”並重新啟動電腦

②使 php.ini 檔案在 Windows 下被 PHP 所用

(這一步很重要,我實驗了的,如果沒有這一步,PHP 將搜尋不到 php.ini )

在 Windows NT,2000,XP 和 2003 種:

  • 進入控制台並開啟“系統”表徵圖(開始 -> 設定 -> 控制台 -> 系統,Windows XP/2003 中是:開始 -> 控制台 -> l系統)
  • 選擇“進階”標籤頁
  • 點擊“環境變數”按鈕
  • 在“系統變數”欄中
  • 點擊“建立”按鈕並在“變數名”中輸入“PHPRC”,在“變數值”中輸入 php.ini 檔案所在的目錄(例如:C:\php)
  • 點擊“確定”並重新啟動電腦

2、下一步是為 PHP 設定一個有效設定檔,php.ini 。

在 ZIP 包中有兩個 ini 檔案,php.ini-dist 和
php.ini-recommended。官方手冊中建議使用
php.ini-recommended,因為在該檔案中最佳化了效能和安全。請仔細閱讀該檔案中的注釋,因為它從 php.ini-dist
修改而來,會對設定產生較大的影響。例如將 display_errors 設定為 off,將 magic_quotes_gpc 設定為
off。除了閱讀這些部分,還可以學習一下 ini 設定,並手動設定每一個設定項目。如果想要最安全的設定,這是最好的方法,雖然 PHP
在預設配置下也是很安全的。對於PHP的初學者來說,我建議用php.ini-dist,因為在該檔案中將 display_errors 設定為
on,這樣你在調試PHP代碼時,會有錯誤提示,方便調試PHP代碼調試。複製所選擇的 ini 檔案到 PHP 能找到的目錄中,並將其重新命名為
php.ini。比如我把將 php.ini-dist 複製到E:\usr\php,並命名為php.ini 。

3、確保在 php.ini 中正確設定了 extension_dir 和 doc_root 指令的值。

這些指令依賴於 PHP 被安裝的系統。開啟php.ini
檔案,搜尋“extension_dir”,在 PHP 4 中,extension_dir 是 extensions 而在 PHP 5 中是
ext 。因此在 PHP 5 中 extensions_dir 的一個取值例子是
“c:\php\ext”。比如我的php目錄是E:\usr\php,所以我將這裡的 extensions_dir 的值設定成
E:/usr/php/ext 。即:extensions_dir = E:/usr/php/ext 。

注意,php.ini 中的路徑可以寫成“E:/usr/php/ext
“,也可以寫成“E:\usr\php\ext ”,就是斜線(/)與反斜線(/)的區別。php.ini
中用斜線(/)或反斜線(/)都可以。Windows中是用斜線(\)表示路徑分隔字元,Unix和Linux中用反斜線(/)表示路徑分隔字元。所以從相容
性出發,推薦用反斜線(/)。如果路徑中有空格,就要用英文引號(")括起來,但Unix和Linux中路徑是不允許包含空格的,所以Windows下的
路徑最好也不要有空格。下面的同理。

然後在php.ini中搜尋“doc_root”,這個是你的WEB根目錄。IIS 的
doc_root 的取值例子是 “c:\Inetpub\wwwroot”;Apache的 doc_root 預設是安裝目錄的 htdocs
檔案夾,比如我的是 E:\usr\Apache2.2\htdocs(我把Apache安裝在 usr
目錄下了)。所以我寫的例子是:doc_root = E:/usr/Apache2.2/htdocs

4、配置 Apache ,讓其支援PHP。

將以下兩行加入到 Apache 的 httpd.conf 設定檔中以設定 Apache 2.0 的 PHP 模組:

# 對 PHP 4 用這兩行:

LoadModule php4_module "c:/php/php4apache2.dll"

# 別忘了從 sapi 目錄中把 php4apache2.dll 拷貝出來!

AddType application/x-httpd-php .php

# 對 PHP 5 用這兩行:

LoadModule php5_module "c:/php/php5apache2.dll"

AddType application/x-httpd-php .php

注意:記得用自己 PHP 實際所在的路徑替換掉上例中的 c:/php/。要留意在 LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll,而不是 php4apache.dll 或 php5apache.dll,後者是設計用於 Apache 1.3.x 的。特別要注意的是,Apache2.2版本要用 php5apache2_2.dll 。Apache 設定檔中的路徑分隔字元一律用反斜線(/)表示。

======================================================================================

方法二:Apache 自身的支援

Apache自身就整合了對 PHP 的支援,只需簡單配置下即可協同工作了。

將下載下來的 PHP 壓縮包解壓後, 按照前面的方法為 PHP 設定一個有效設定檔 php.ini ,並且在 php.ini 中正確設定了 extension_dir 和 doc_root 指令的值。

將以下三行加入到 Apache 的 httpd.conf 設定檔中以設定 Apache 2.x 的 PHP 模組:

# 對 PHP 5 用這兩行:

LoadModule php5_module "c:/php/php5apache2.dll"

AddType application/x-httpd-php .php

# 配置 php.ini 的路徑

PHPIniDir "C:/php"

注意,PHP 路徑換成你自己的路徑。特別要注意的是,Apache2.2版本要用 php5apache2_2.dll 。Apache 設定檔中的路徑分隔字元一律用反斜線(/)表示。

可以看到,僅僅多了個配置 php.ini 的指令。該指令只在 Apache 2 中有效。

至此,整個Apache下配置PHP完成,你可以建一個包含phpinfo()函數的php檔案,測試PHP在 Apache 下是否配置成功。測試檔案內容如下:


<?php
echo phpinfo();
?>

注意查看其中的“Configuration File (php.ini)
Path”項或者“Loaded Configuration File ”項是否指向你的 php 目錄。查看 PHP Core
部分的“extension_dir”項是否指向你的 php 擴充目錄。

將index.php設定為預設首頁
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

將伺服器網站啟動目錄設定到d:\php
首先修改
DocumentRoot 的值為 d:/php

DocumentRoot "d:/php"

然後修改節點塑像為<Directory "d:/php">

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.