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