Я пытаюсь установить php с fpm в macports. Я где-то читал, что fpm означает FastCGI-менеджер процессов. Означает ли это, что fastcgi и fpm такие же? Если они одинаковые, то почему у нас есть два разных варианта macports для php, а именно "php5 + fastcgi" и "php5 + fpm"
В чем разница между fastcgi и fpm?
Ответ 1
FPM является диспетчером процессов для управления FastCGI SAPI (Server API) в PHP.
В принципе, он заменяет необходимость в чем-то вроде SpawnFCGI. Он быстро адаптирует файлы FastCGI (что означает запуск больше, если это требует текущая загрузка).
В противном случае разница между ним и FastCGI невелика (конвейер запросов от начала запроса до конца один и тот же). Это просто, чтобы упростить реализацию.
Ответ 2
То, что говорит Энтони, абсолютно правильно, но я хотел бы добавить, что ваш опыт, скорее всего, продемонстрирует намного лучшую производительность и эффективность (из-за не fpm-vs-fcgi, а больше для реализации вашего httpd).
Например, у меня была четырехъядерная машина, работающая на lighttpd + fcgi. Я перешел на 16-ядерную машину, чтобы справиться с ростом, а также две вещи: использование RAM и segfaults. Я обнаружил, что перезапускал lighttpd каждые 30 минут, чтобы сохранить сайт.
Я переключился на php-fpm и nginx, а использование ОЗУ снизилось s > 20 ГБ до 2 ГБ. Segfaults также исчезли. Проведя некоторые исследования, я узнал, что lighttpd и fcgi хорошо ладят с многоядерными машинами под нагрузкой, а также имеют проблемы с утечкой памяти в определенных случаях.
Это связано с тем, что php-fpm лучше fcgi? Не совсем, но как вы подключаетесь к php-fpm, кажется, что целая хеквува намного эффективнее, чем то, как вы обслуживаете через fcgi.