SAPI = Server Application Programming Interface
CGI = Common Gateway Interface
L'obiettivo principale di CLI SAPI è quello di sviluppare applicazioni shell con PHP. Esistono alcune differenze tra la CLI SAPI e le altre SAPI; queste saranno illustrate nel corrente capitolo. Val la pena ricordare che CLI e CGI sono differenti SAPI sebbene condividano il medesimo comportamento in diverse situazioni.
La CLI SAPI è abilitata di default con l'opzione --enable-cli, ma può esseredisattivata usando --disable-cli quando si usa il comando ./configure.
Il nome, la posizione, e l'esistenza di eseguibili CLI/CGI
differiranno in base a come il PHP sarà installato sul sistema. Per
default quando si esegue il make, si compila sia la versione CGI
sia la versione CLI e saranno poste rispettivamente in sapi/cgi/php-cgi e
sapi/cli/php a partire dalla directory dei sorgenti.
Occorre notare che entrambi gli eseguibili sono chiamati php
. Ciò che accade durante
l'esecuzione di make install dipende dalla linea di configurazione. Se durante
la configurazione si è scelto un modulo SAPI, tipo apxs, o si è attivato
--disable-cgi, l'eseguibile CLI viene
copiato in {PREFIX}/bin/php
durante make install, altrimenti in questa cartella sarà posto l'eseguibile
CGI. Così, per esempio, se si ha come parametro di configurazione
--with--apxs allora l'eseguibile CLI sarà copiato in {PREFIX}/bin/php
durante make install. Se si vuole evitare
l'installazione dell'eseguibile CGI, utilizzare make
install-cli dopo make install. In alternativa
si può specificare --disable-cgi nella linea di
configurazione.
Nota:
Poiché sia --enable-cli sia --enable-cgi sono abilitati per default, avere semplicemente --enable-cli nella linea di configurazione non significa necessariamente che l'eseguibile CLI sia copiato come {PREFIX}/bin/php con l'esecuzione di make install.
La versione CLI viene inserita nella cartella principale, con il nome php.exe in Windows. La versione CGI è chiamata php-cgi.exe. Inoltre, è distribuito un file chiamato php-win.exe se PHP è configurato con --enable-cli-win32. Questo è equivalente alla versione CLI, tranne che php-win non visualizzerà nulla e quindi non vi sarà la finestra di console.
Nota: Quale SAPI ho?
Da shell, digitando php -v si avrà l'informazione di quale php si tratta, CGI o CLI. Vedere anche la funzionei php_sapi_name() e la costante
PHP_SAPI
per dettagli.
Nota:
Una pagina stile
man
di Unix è disponibile digitando man php da linea di comando.