Установка с интерфейсами CGI и командной строки
По умолчанию, при сборке PHP как CGI-программы создается интерпретатор
командной строки, который может быть использован для обработки CGI-скриптов
и выполнения функций не связанных с Web-программированием. PHP как
модуль сервера выигрывает в производительности, однако PHP CGI позволяет
запускать PHP от пользователя, отличного от того, под которым исполняется
сервер.
ВниманиеИспользуя установку CGI, ваш сервер
открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом
"Безопасность CGI" чтобы узнать,
как можно защитить себя от этих атак.
В PHP 4.0.3 было добавлено несколько важных дополнений. Новый SAPI командной
строки, названый CLI, и имеющий такое же имя как и CGI.
Исполняемый файл устанавливается в {PREFIX}/bin/php,
где {PREFIX} указывается вами при запуске конфигурационного скрипта перед
сборкой. Более детально вы можете ознакомиться с этой темой в разделе
Использование PHP в командной строке.
Тестирование
Если вы собрали PHP как CGI, вы можете протестировать вашу сборку
командой make test. Тестирование вашей сборки -
всегда хорошая идея. Таким образом вы можете обнаружить работы PHP на вашей
платформе раньше, вместо того, чтобы бороться с ними позже.
Тестирование производительности(Benchmarking)
Если вы собрали PHP 3 как CGI, вы можете протестировать производительность
вашей сборки посредством команды make bench. Заметьте,
что если безопасный режим включен по умолчанию, тестирование производительности
не сможет нормально завершиться, если оно длится более 30 секунд. Это
происходит потому, что функция set_time_limit() не может
использоваться при включенном безопасный режим. Используйте параметр max_execution_time в конфигурационном
файле, чтобы позволить вашим скриптам исполняться дольше 30 секунд.
make bench игнорирует конфигурационный файл.
Замечание:
make bench доступно только для PHP 3.
Использование переменных
Некоторые переменные
окружения сервера не определены в текущей
» спецификации CGI/1.1.
Только следующие переменные определены: AUTH_TYPE,
CONTENT_LENGTH, CONTENT_TYPE,
GATEWAY_INTERFACE, PATH_INFO,
PATH_TRANSLATED, QUERY_STRING,
REMOTE_ADDR, REMOTE_HOST,
REMOTE_IDENT, REMOTE_USER,
REQUEST_METHOD, SCRIPT_NAME,
SERVER_NAME, SERVER_PORT,
SERVER_PROTOCOL, and SERVER_SOFTWARE.
Все остальное должно обрабатываться как 'vendor extensions'.