拜託,看在上帝的份上,請下載執行緒安全版。我花了一個多小時試圖找出為什麼找不到 php5apache2.dll,在拼命翻閱手冊時,我查看了 PHP 5 的目錄結構,發現非執行緒安全版根本沒有這個檔案。
除了 PHP 5 的目錄結構之外,真的應該在其他地方提到這一點,例如首頁左側討論要選擇哪個 PHP 版本的段落,或者涵蓋 Apache 的這部分手冊...總之,除了目錄結構以外的任何地方,拜託。我根本想不到要去那裡找。
本節包含在 Microsoft Windows 系統上安裝 Apache 2.x 版 PHP 的注意事項和提示。
注意:
請先閱讀手動安裝步驟!
強烈建議您參考 » Apache 文件 以取得對 Apache 2.x 伺服器的基本理解。在繼續閱讀本文之前,也請考慮閱讀 » Apache 2.x 的 Windows 特定注意事項。
下載最新版本的 » Apache 2.x 以及相應的 PHP 版本。按照 手動安裝步驟 進行操作,然後再回來繼續整合 PHP 和 Apache。
在 Windows 上設定 PHP 與 Apache 2.x 協同工作有三種方式:以處理程式、CGI 或 FastCGI 方式執行 PHP。
注意:請記住,在 Windows 的 Apache 設定檔中新增路徑值時,所有反斜線,例如 c:\directory\file.ext,都應轉換為正斜線:c:/directory/file.ext。目錄可能還需要加上結尾斜線。
注意:使用 apache2handler SAPI 時,必須使用執行緒安全 (TS) 版本的 PHP。
要載入 Apache 2.x 的 PHP 模組,必須在 Apache 的 httpd.conf 設定檔中插入以下幾行:
範例 #1:以處理程式方式執行 PHP 和 Apache 2.x
# before PHP 8.0.0 the name of the module was php7_module LoadModule php_module "c:/php/php8apache2_4.dll" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # configure the path to php.ini PHPIniDir "C:/php"
注意:在上述範例中,必須將 C:/php/ 替換為 PHP 的實際路徑。請確保
LoadModule
指令中引用的檔案位於指定位置。對於 PHP 7,請使用 php7apache2_4.dll;對於 PHP 8,請使用 php8apache2_4.dll。
強烈建議您參考 » Apache CGI 文件 以更完整地了解如何在 Apache 上執行 CGI。
要以 CGI 方式執行 PHP,需要將 php-cgi 檔案放置在使用 ScriptAlias 指令指定的 CGI 目錄中。
需要在 PHP 檔案中加入 #!
行,指向 PHP 執行檔的位置。
範例 #2:以 CGI 方式執行 PHP 和 Apache 2.x
#!C:/php/php.exe <?php phpinfo(); ?>
以 CGI 模式部署的伺服器容易受到幾種可能的漏洞攻擊。請閱讀我們的 CGI 安全性章節 以了解如何防範此類攻擊。
以 FastCGI 方式執行 PHP 比以 CGI 方式執行 PHP 有許多優點。以這種方式進行設定相當簡單。
從 » https://www.apachelounge.com 取得 mod_fcgid
。該網站提供 Win32 執行檔供下載。請根據隨附的說明安裝模組。
如下所示設定網路伺服器,並注意調整任何路徑以反映其在系統上的安裝方式。
範例 #3:設定 Apache 以 FastCGI 方式執行 PHP
LoadModule fcgid_module modules/mod_fcgid.so # Where is the php.ini file? FcgidInitialEnv PHPRC "c:/php" <FilesMatch \.php$> SetHandler fcgid-script </FilesMatch> FcgidWrapper "c:/php/php-cgi.exe" .php
.php
的檔案將由 PHP FastCGI 包裝器執行。
拜託,看在上帝的份上,請下載執行緒安全版。我花了一個多小時試圖找出為什麼找不到 php5apache2.dll,在拼命翻閱手冊時,我查看了 PHP 5 的目錄結構,發現非執行緒安全版根本沒有這個檔案。
除了 PHP 5 的目錄結構之外,真的應該在其他地方提到這一點,例如首頁左側討論要選擇哪個 PHP 版本的段落,或者涵蓋 Apache 的這部分手冊...總之,除了目錄結構以外的任何地方,拜託。我根本想不到要去那裡找。
在配備 AMD A6-3400M 四核心處理器的 Gateway NV75S 筆記型電腦上,於 Windows 7 家用進階版安裝 Apache 和 PHP
我只需要用這些程式在我的筆記型電腦上測試我的網站。我有 HTML 和 PHP 檔案。我不需要 MySQL,因為我使用 HTML5 儲存空間。
取得和安裝 Apache
1. 在您的瀏覽器中前往 h t t p : / / h t t p d . a p a c h e . o r g / d o w n l o a d . c g i
(網址中的空格請移除)
2. 點擊 httpd-2.2.22-win32-x86-no_ssl.msi
(這是一個沒有加密功能的自動安裝執行檔...沒有安全通訊端層)
(2.2.22 是 2012 年 4 月 25 日的最新版本)
3. 下載完成後,點擊 httpd-2.2.22-win32-x86-no_ssl.msi 檔案
(在 Chrome 中單擊檔案標籤或在「下載」資料夾中雙擊實際檔案)
4. 點擊「下一步」
5. 點擊「我接受授權合約中的條款」
6. 點擊「下一步」
7. 點擊「下一步」
8. 在最上方的方塊中輸入 localhost
9. 在中間的方塊中輸入 localhost
10. 在最下方的方塊中輸入 admin@localhost.com
11. 點擊「下一步」
12. 點擊「下一步」
13. 點擊「下一步」
14. 點擊「安裝」並等待
15. 點擊「是」以允許程式進行變更
16. 點擊「完成」
測試 Apache
1. 在瀏覽器的網址列中輸入 localhost (我使用 Chrome) 或輸入 h t t p : / / l o c a l h o s t
(網址中的空格請移除)
2. 應該會出現「It works!」訊息。
取得和安裝 PHP
1. 在您的瀏覽器中前往 h t t p : / / w i n d o w s . p h p . n e t / d o w n l o a d /
(網址中的空格請移除)
2. 點擊 PHP 5.3 (5.3.10) VC9 x86 Thread Safe 下方的「Installer」連結
(忽略側邊欄上的「請勿將 VC9 版本與 apache.org 二進位檔案一起使用」的註釋)
3. 下載完成後,點擊 php-5.3.10-Win32-VC9-x86.msi 檔案
(在 Chrome 中單擊檔案標籤或在「下載」資料夾中雙擊實際檔案)
4. 點擊「下一步」
5. 點擊「我接受授權合約中的條款」
6. 點擊「下一步」
7. 點擊「下一步」
8. 點擊「Apache 2.2.x Module」
9. 點擊「下一步」
10. 點擊「瀏覽」
11. 雙擊「Apache Software Foundation」
12. 雙擊「Apache 2.2」
13. 雙擊「conf」
14. 點擊「確定」
15. 點擊「下一步」
16. 點擊「下一步」
17. 點擊「安裝」並等待
18. 點擊「是」以允許程式進行變更
19. 點擊「完成」
使用 Apache 測試 PHP
1. 開啟「記事本」
2. 輸入「<?php phpinfo(); ?>」
3. 將檔案儲存到 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs,檔案名稱為 test.php
4. 在瀏覽器的網址列中輸入 localhost/test.php (我使用 Chrome) 或輸入 h t t p : / / l o c a l h o s t / t e s t . p h p
應該會出現一個標題為 PHP 版本的表格
完成
以 FastCGI 方式執行 PHP
除了在 httpd.conf 中加入以下內容之外
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php"
AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
記得在預設的 <Directory "C:/apache/htdocs"> 區塊(或虛擬主機區塊)中加入以下內容
Options ExecCGI
這是 Windows 上 Apache 最快的架構,比 php 模組更快
在 httpd.conf 中啟用 mod_proxy 和 mod_proxy_fcgi 並執行
setx PHP_FCGI_CHILDREN "15" /m
setx PHP_FCGI_MAX_REQUESTS "1000" /m
並下載
RunHiddenConsole.exe 並使用 c:\hidden\RunHiddenConsole.exe C:\PHP\php-cgi.exe -b 127.0.0.1:9000 啟動 php 並在 VirtualHost 上設定
<Files ~ "\.(php|phtml)$">
SetHandler "proxy:fcgi://127.0.0.1:9000#"
ProxyFCGIBackendType GENERIC
ProxyFCGISetEnvIf "true" SCRIPT_FILENAME "C:%{reqenv:SCRIPT_FILENAME}"
</Files>
重新啟動 Apache 服務並享受吧。來自一位忠實粉絲的歡呼