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