Seit PHP 4.3.0 unterstützt PHP eine CLI SAPI. Das Hauptaugenmerk dieser SAPI ist die Entwicklung von Kommandozeilenapplikationen. Es gibt einige Unterschiede zwischen der CLI SAPI und anderen SAPIs, welche in diesem Kapitel beschrieben werden. Es ist erwähnenswert, dass CLI und CGI verschiedene SAPIs sind, auch wenn sie viele Verhaltensweisen teilen.
Die CLI SAPI ist standardmäßig durch die --enable-cli Option aktiviert, kann jedoch durch Angabe der --disable-cli Option im ./configure Skript deaktiviert werden.
Der Name, der Pfad und das Vorhandensein der CLI/CGI Binaries hängt davon ab wie PHP auf dem System installiert wurde. Standarmäßig werden nach dem Aufruf von make sowohl CGI als auch CLI kompiliert und als sapi/cgi/php-cgi beziehungsweise sapi/cli/php in Ihrem PHP-Quellcodeverzeichnis gespeichert. Sie werden bemerken, dass beide php heissen. Was während make install passiert, hängt davon ab wie PHP konfiguriert wurde. Wenn eine Modul-SAPI während der Konfiguration gewählt wurde, wie etwa apxs, oder die --disable-cgi Option genutzt wurde, wird die CLI während make install nach {PREFIX}/bin/php kopiert. Andernfalls wird das CGI Binary dorthin kopiert. Also wird, wenn beispielsweise --with--apxs in Ihrem configure-Kommando angegeben ist, wird die CLI während make install nach {PREFIX}/bin/php kopiert. Wenn Sie die Installation des CGI Binaries überschreiben wollen, benutzen Sie make install-cli nach make install. Alternativ können Sie --disable-cgi in Ihrem configure-Kommando angeben.
Hinweis:
Weil sowohl --enable-cli als auch --enable-cgi standardmäßig eingeschaltet sind, muss --enable-cli in Ihrem configure-Kommando nicht zwingend bedeuten, dass die CLI während make install nach {PREFIX}/bin/php kopiert wird.
Seit PHP 5 wird auf Windows das CLI Binary im Hauptordner als php.exe ausgeliefert. Die CGI Version wird als php-cgi.exe bereitgestellt. Zusätzlich wird php-win.exe ausgeliefert, wenn PHP mit --enable-cli-win32 konfiguriert wurde. Dieses Binary verhält sich genauso wie die CLI Version, bis auf die Tatsache, dass sie nichts ausgibt und somit keine Konsole zur Verfügung stellt.
Hinweis: Welche SAPI habe ich?
Auf der Kommandozeile wird Ihnen die Eingabe von php -v verraten, ob Sie php als CGI oder CLI einsetzen. Sehen Sie sich auch die Funktion php_sapi_name() und die Konstante
PHP_SAPI
an.
Hinweis:
Eine UNIX man Seite ist durch eingabe von man php in der Kommandozeile verfügbar.