CakeFest 2024: The Official CakePHP Conference

Introduction

Das Hauptaugenmerk der CLI SAPI liegt auf der Entwicklung von Kommandozeilenanwendungen. 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 Option --enable-cli aktiviert, kann jedoch durch Angabe der Option --disable-cli 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 heißen. Was während make install passiert, hängt davon ab, wie PHP konfiguriert wurde. Wenn bei der Konfiguration eine Modul-SAPI wie z. B. apxs gewählt wurde oder die Option --disable-cgi 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, die CLI während make install nach {PREFIX}/bin/php kopiert. Wenn Sie die Installation des CGI-Binaries überschreiben wollen, verwenden 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.

Auf Windows wird 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-manpage ist durch Eingabe von man php auf der Kommandozeile verfügbar.

add a note

User Contributed Notes 1 note

up
58
Anonymous
3 years ago
SAPI = Server Application Programming Interface
CGI = Common Gateway Interface
To Top