Очень простой вопрос для вас. Я просто нашел два исполняемых файла php-cgi.exe
и php.exe
в папке bin на сервере WAMP на моем ноутбуке. Я изучаю PHP и не могу понять разницу. В чем разница между ними?
PHP CLI – это интерфейс командной строки для PHP (например, для создания автономных приложений)
PHP CGI – это общий интерфейс шлюза для PHP (например, для веб-приложений)
С http://www.php-cli.com/php-cli-cgi.shtml
Это самые важные различия между CLI и CGI:
php-cgi
предназначен для веб-сервера. Среди прочего он обрабатывает HTTP-заголовки для вас.
Версия CLI предназначена для запуска в командной строке (отсюда «интерфейс командной строки»). Это не обрабатывает заголовки или любые другие связанные с сервером вещи.
CLI предназначен для сценариев командной строки, CGI – для веб-запросов
php-cli
предназначен для запуска PHP в командной строке. php-cgi
делает для вас дополнительные вещи, такие как заголовки HTTP и некоторые модификации безопасности.
Сказав это, рассмотрим возможность установки модуля FastCGI и использования PHP-интерфейса FastCGI . Это должно запускать PHP заметно быстрее, чем php-cgi. Я считаю, что стандартным модулем Apache FastCGI является mod_fcgid
.
Это может дать вам более широкое понимание их разницы:
CGI: (общий интерфейс шлюза) Это спецификация «протокол» для передачи информации между веб-сервером и программой CGI.
Программа CGI – это любая программа, предназначенная для приема и возврата данных, соответствующих спецификации CGI.
В принципе, это способ запуска сценария на стороне сервера (PHP, Perl, Python, …) при поступлении HTTP-запроса.
CGI очень медленный по сравнению с другими альтернативами.
FastCGI: лучший CGI.
Быстрый CGI – это другой подход с гораздо более быстрыми результатами.
Это CGI с несколькими расширениями.
Реализация FastCGI больше не доступна в пользу PHP-FPM.
PHP-FPM: (FastCGI Process Manager), это лучшая реализация FastCGI, чем старый FastCGI.
Он работает как автономный сервер FastCGI.
В общем, это интерфейс PHP для веб-серверов (Apache, Nginx ..), позволяющий веб-серверу взаимодействовать с PHP.
В отличие от PHP-CLI, который является интерфейсом командной строки для PHP, позволяет пользователям взаимодействовать с PHP через терминал.
mod_php: модуль Apache для запуска PHP.
Он выполняет PHP-скрипты внутри веб-сервера непосредственно как часть веб-сервера без связи с программой CGI.
mod_SuPHP: похож на mod_php, но может изменить пользователя / группу, в которой работает процесс.
В основном он затрагивает некоторые проблемы mod_php, связанные с разрешениями.