CGIPathPrefix PHP 是一個讓您的 PHP 程序能夠在 Apache CGI 不可用的環境中正常工作的工具。在此之前,如果您想在非 Apache HTTP Server 上運行 PHP,那么您需要重新編寫您的 PHP 代碼,以便使其更加兼容 CGI 標準(Common Gateway Interface)。但隨著 CGIPathPrefix 的出現,您不需要再為此費心了。下面讓我們來看看這個工具到底是如何工作的。
在 Apache HTTP Server 上,如果您希望將 PHP 當作CGI 運行,您應該在您的 Apache 配置文件中的文本塊中,設置相應的 AddHandler 和 Action 指令。這個但是在許多 Linux 發行版中,Apache HTTP Server 不是默認的 Web 服務器。如此一來,您可能需要自己來編譯并啟用 Apache,這對新手用戶來說可能是個困難的選擇。
如果您僅僅是想簡單地調試您的 PHP 應用程序,那么為了避免這種重復的工作,您可以利用 PHP 的自帶 HTTP 服務器來達到目的,例如:
```
php -S localhost:8000
```
但是,如果您依賴更加健壯的生產環境,那么 Apache HTTP Server 仍是您的首要選擇。這時候,CGIPathPrefix PHP 就可以派上用場了。
那么,CGIPathPrefix PHP 到底是如何工作的呢?它的工作原理是將所有的 PHP 請求都指定到到同一個目錄下,并且索引出這個目錄中的 PHP 腳本。為了說明更加清楚,我們來看一個例子。
假設您將 CGIPathPrefix 設置為 "/php-bin"。那么倘若您有個叫做 "/var/www/example.com/bbs.php" 的 PHP 文件, 那么您可以使用以下 URL 來訪問它:
```
http://example.com/php-bin/bbs.php
```
這種構建方式意味著 CGI 和 FastCGI 服務方式都能得到支持,而且,無論是 CLI 風格的 vCLI,還是帶有 Web 服務器的 CGI 風格的 CLI,都能進行完整的測試。使用 CGIPAthPrefix,盡管不支持像 mod_php那樣的高級特性,但您仍然可以簡單地在大多數的 Shared Hosting 主機中啟用 PHP。
如果您想調整 CGIPAthPrefix PHP 的行為,您可以通過為單個虛擬主機不同的配置來實現。例如,假設您有許多子目錄,每個目錄都有不同的 PHP 可執行文件。例如下面這種一共倆個子目錄的情況:
```
http://example.com/php-bin/forum/forum_post.php
http://example.com/php-bin/gallery/gallery_display.php
```
那么您就需要配置 $PHP_CGIPATH_PREFIX 到 php-bin,以及 /forum 和 /gallery 的二級目錄。
總的來說,CGIPAthPrefix PHP 是一個無所不能的工具,它為 PHP 程序員提供了一種簡便而優美的方式,在不同的服務器上運行 PHP 代碼,無需手動更改其兼容性或重新編寫代碼。無論計劃在何種環境上運行您的 PHP 程序,將 CGIPathPrefix PHP 加入軟件類庫中都會使您更具生產力,同時也是您最佳的選擇之一。
上一篇cgi模式 php