Введение
Начиная с версии 4.3.0, PHP поддерживает CLI SAPI. Основная цель этого SAPI - разработка консольных приложений на PHP. Имеется несколько несущественных различий между CLI SAPI и другими видами SAPI, которые будут рассмотрены в этой главе. Будет полезно заметить, что CLI SAPI и CGI - различные SAPI-интерфейсы, хотя в их поведении много общего.
CLI SAPI включается по умолчанию с помощью опции --enable-cli , но может быть выключен опцией --disable-cli при запуске ./configure.
Имя, расположение и существование бинарных модулей CLI/CGI зависит от того, как именно установлен PHP в вашей системе. По умолчанию при выполнении make создается как CGI, так и CLI модуль, размещенные в директориях sapi/cgi/php-cgi и sapi/cli/php соответственно, внутри директории с исходниками PHP. Cледует заметить, что оба файла имеют одинаковое название: php. Что произойдет при выполнении make install, зависит от того, какие опции вы указали на стадии конфигурирования. В случае, если вы отдали предпочтение такому модулю SAPI как apxs, либо указали опцию --disable-cgi , модуль CLI будет скопирован в {PREFIX}/bin/php при выполнении make install, в противном случае будет скопирован CGI-модуль. Например, если вы указали опцию --with-apxs , то при выполнении make install CLI-версия будет скопирована в {PREFIX}/bin/php. Если вы хотите перекрыть установленный CGI-модуль, используйте make install-cli после выполнения make install. В качестве альтернативы вы могли бы указать опцию --disable-cgi в строке конфигурации.
Замечание:
Поскольку обе опции, --enable-cli и --enable-cgi , присутствуют по умолчанию, одного присутствия строки --enable-cli в команде конфигурации недостаточно для того, чтобы CLI-версия была установлена в {PREFIX}/bin/php при выполнении make install.
Начиная с PHP 5, бинарный файл CLI входит в дистрибутив для Windows в основной папке в качестве файлаphp.exe. CGI-версия находится в файле php-cgi.exe. Кроме того, в дистрибутив входит файл php-win.exe, если PHP был сконфигурирован с помощью --enable-cli-win32 . Он полностью эквивалентен CLI-версии, за исключением того, что абсолютно ничего не выводит, что приводит к отстутствию консоли (окно DOS не появляется на экране).
Замечание: Какой из вариантов SAPI установлен?
Выполните из командной строки php -v для получения информации о том, является ли php CGI или CLI. Также вы можете использовать функцию php_sapi_name() или константу
PHP_SAPI
.
Замечание:
Соответствующую страницу руководства (man) Unix можно просмотреть с помощью команды man php в консоли.
Коментарии
SAPI = Server Application Programming Interface
CGI = Common Gateway Interface