Команда run
run поднимает HTTP-сервер перед роутером ядра. По умолчанию — Swoole
(корутины, воркеры), а run dev — встроенный сервер PHP для разработки без
дополнительных расширений.
Что такое run и зачем
run — команда запуска веб-сервера проекта.
Проблема. Чтобы приложение отвечало на HTTP, нужен сервер. В разработке хочется поднять его одной командой без настройки Nginx/FPM, а в проде — быстрый асинхронный рантайм.
Решение. run даёт оба: run dev — мгновенный встроенный сервер PHP для
локальной разработки, run — Swoole для продакшена. Об этом и раздел.
Два режима
php call run # Swoole (нужно расширение swoole)
php call run dev # встроенный сервер PHP (без Swoole)Адрес по умолчанию — 0.0.0.0:8000.
Swoole требует расширение
run без dev поднимает Swoole и предупредит с выходом, если расширение не
установлено (pecl install swoole). Для локальной разработки достаточно run dev.
Опции Swoole (run)
| Опция | Назначение | По умолчанию |
|---|---|---|
--host= |
Адрес привязки | 0.0.0.0 |
--port= |
Порт | 8000 |
--workers= |
Число воркеров (worker_num) |
авто |
--tasks= |
Число task-воркеров | выкл |
--max_request= |
Перезапуск воркера после N запросов | выкл |
--max_request_grace= |
Плавный порог перезапуска | выкл |
-w / --watcher |
Включить MemoryWatcher |
выкл |
php call run --port=8000 --workers=4 -w
php call run --max_request=5000 --max_request_grace=500CLI-опции переопределяют значения из Boot::swooleConfig(). При занятом порте
Swoole-режим предупреждает и выходит.
Опции dev-сервера (run dev)
Только --host= и --port=.
php call run dev
php call run dev --port=9000Автоподбор порта
Если ни --host, ни --port не заданы и порт по умолчанию занят, dev-сервер сам
переберёт следующие 10 портов. Если порт задан явно — режим «ручной»: при занятом
порте команда предупредит и выйдет, без перебора.
Дальше
- Установка — первый запуск
run dev - Продвинутое → Runtime — FPM vs Swoole
- cfg docker — образ под Swoole/FPM