CLI SAPI 模塊主要用作 PHP 的開(kāi)發(fā)外殼應(yīng)用。CLI SAPI 和其它
SAPI
模塊相比有很多的不同之處,我們將在本章中詳細(xì)闡述。值得一提的是,盡管 CLI
和 CGI
有很多共同的行為,但它們是不同的 SAPI。
CLI SAPI 模塊會(huì)通過(guò)默認(rèn)的 --enable-cli 參數(shù)設(shè)置啟用, 也可以在運(yùn)行 ./configure 時(shí)用參數(shù) --disable-cli 來(lái)屏蔽。
CLI/CGI 二進(jìn)制執(zhí)行文件的文件名、位置和是否存在會(huì)根據(jù)
PHP 在系統(tǒng)上的安裝而不同。在默認(rèn)情況下,當(dāng)運(yùn)行
make 時(shí),CGI 和 CLI 都會(huì)被編譯并且分別放置在
PHP 源文件目錄的 sapi/cgi/php-cgi 和
sapi/cli/php 下。可以注意到兩個(gè)文件都被命名為了
php。在 make install
的過(guò)程中會(huì)發(fā)生什么取決于配置行。如果在配置的時(shí)候選擇了一個(gè)
SAPI 模塊,如 apxs,或者使用了
--disable-cgi 參數(shù),則在
make install 的過(guò)程中,CLI 將被拷貝到
{PREFIX}/bin/php,除非 CGI
已經(jīng)被放置在了那個(gè)位置。因此,例如,如果在配置行中有
--with--apxs,則在
make install
的過(guò)程中,CLI 將被拷貝到
{PREFIX}/bin/php
。如果希望覆蓋 CGI
執(zhí)行文件的安裝,請(qǐng)?jiān)?make install
之后運(yùn)行 make install-cli?;蛘撸部梢栽谂渲眯兄屑由? --disable-cgi 參數(shù)。
注意:
由于 --enable-cli 和 --enable-cgi 同時(shí)默認(rèn)有效,因此,不必再配置行中加上 --enable-cli 來(lái)使得 CLI 在 make install 過(guò)程中被拷貝到 {PREFIX}/bin/php。
在 Windows 發(fā)行包中,CLI 在主目錄中的二進(jìn)制文件名為 php.exe。CGI 版本的文件名為 php-cgi.exe。 如果 PHP 配置使用了 --enable-cli-win32,還會(huì)有一個(gè)額外的 php-win.exe 隨包發(fā)布。 它相當(dāng)于 CLI 版本,但是 php-win 不輸出任何內(nèi)容,便不提供控制臺(tái)(不會(huì)彈出“DOS 窗口”)。
注意: 如何得知自己使用的是哪個(gè) SAPI?
在命令行下,運(yùn)行 php -v 便能得知該 php 是 CGI 還是 CLI。請(qǐng)參考函數(shù) php_sapi_name() 以及常量
PHP_SAPI
。
注意:
在命令行中鍵入 man php 可以查看 Unix
man
手冊(cè)頁(yè)面。