Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
В чём разница FPM и RoadRunner?
PHP-FPM обрабатывает каждый запрос с полной инициализацией приложения, что надежно но медленно. RoadRunner запускает приложение один раз как долгоживущий процесс, обрабатывая множество запросов без повторной инициализации. Это дает значительный прирост производительности для приложений с тяжелой загрузкой. RoadRunner лучше подходит для высоконагруженных API и реального времени, а FPM - для традиционных веб-приложений.
Как запустить PHP-приложение кроме PHP-FPM?
PHP-приложения можно запускать разными способами в зависимости от потребностей. Встроенный веб-сервер PHP удобен для разработки и тестирования. Apache с mod_php подходит для традиционных хостингов. Современные варианты включают RoadRunner и Swoole для высокопроизводительных приложений. Также можно использовать CLI-режим для фоновых задач и консольных приложений.
Как настраивается количество воркеров в PHP-FPM?
Количество воркеров настраивается в конфигурационном файле пула PHP-FPM (обычно www.conf) с помощью нескольких ключевых директив. Основные из них: pm (менеджер процессов), pm.max_children (общее максимальное количество воркеров), pm.start_servers (количество воркеров при старте), pm.min_spare_servers (минимальное количество свободных воркеров) и pm.max_spare_servers (максимальное количество свободных воркеров). Эти значения подбираются в зависимости от доступной оперативной памяти и ожидаемой нагрузки.
Что такое PHP-FPM и зачем он нужен?
PHP-FPM (FastCGI Process Manager) — это альтернативная реализация PHP FastCGI с дополнительными возможностями для управления процессами. Он нужен для эффективного обслуживания PHP-запросов в веб-серверах, таких как Nginx, которые не умеют напрямую исполнять PHP-код. FPM создает пул заранее запущенных процессов-воркеров, которые обрабатывают запросы, что значительно быстрее, чем запуск PHP с нуля для каждого запроса.
Настройка воркеров: Supervisor / PHP-FPM в контексте очередей
Воркеры — это фоновые процессы, которые постоянно запущены и обрабатывают задачи из очереди, например, отправку email или генерацию отчетов. PHP-FPM не предназначен для долгоживущих процессов, он создает и завершает PHP-процессы для быстрой обработки веб-запросов. Supervisor — это программа, которая следит за тем, чтобы воркеры всегда были запущены, автоматически перезапуская их в случае падения или завершения. Таким образом, для очередей используют отдельные PHP-скрипты (воркеры), а Supervisor обеспечивает их постоянную работу.
Как обрабатывается веб-запрос в фреймворке (Laravel/Yii2) — от Nginx через PHP-FPM до контроллера и возврата JSON-ответа?
Рейтинг:
3
Сложность:
4
Веб-запрос проходит через несколько уровней обработки. Сначала Nginx принимает запрос и передает его PHP-FPM через FastCGI протокол. PHP-FPM запускает PHP-процесс, который загружает фреймворк. Фреймворк анализирует маршрут, находит соответствующий контроллер и выполняет его метод. Контроллер обрабатывает данные и возвращает JSON-ответ, который проходит обратно через всю цепочку к клиенту.
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
3
Рейтинг:
3
Сложность:
4
Рейтинг:
4
Сложность:
5
Рейтинг:
3
Сложность:
7