JohnyMastricht
@JohnyMastricht
guitarplayer

CGI\FastCGI и просто CGI — есть одно и то же?

Все никак не могу понять четкой разницы во время настройки PHP в данных режимах.
Если смотреть в код phpinfo(); то в качестве ServerAPI мы видим CGI\FastCGI.

1. А бывает ли так, что можно настроить PHP таким образом, чтобы в ServerAPI указывался только CGI?
Или принципиальное тут отличие будет в том, что FastCGI всегда использует suexec и тогда, по подключенному модулю suexec можно конкретно сказать что сейчас подключен FastCGI. А если suexec не подключен - значит сейчас PHP работает как CGI, хотя, опять же, видим CGI\FastCGI в ServerAPI?

2. В обоих случаях обращения идут к бинарнику php-cgi, который находится в дире с скомпилированным PHP.
Ну и стандартно указывается следующая конструкция:

ScriptAlias /cgi-bin /opt/php54/bin/
Action php-script /cgi-bin/php-cgi
AddHandler php-script .php

то есть обращения идут именно к бинарнику /cgi-bin/php-cgi, а не просто к /cgi-bin/php (хотя в этой же дире есть и такой). Может быть здесь - /cgi-bin/php - как-то связан с "просто CGI"? Хотя если указывать его как обработчик получаю "500".

3. Зачем тогда для FastCGI используется wrapper который тоже указывает исполнять /opt/php54/bin/php-cgi?

FCGIWrapper /opt/php52/bin/fcgiwrapper.sh

Немного сумбурно изложил, если что в каментах дополню.
Основной вопрос - когда в ServerAPI указан CGI\FastCGI - как понять какой именно из них сейчас работает?
  • Вопрос задан
  • 765 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы