Как использовать встроенные веб-серверы PHP
Дата обновления перевода 2023-07-06
Как использовать встроенные веб-серверы PHP
С выхода PHP 5.4, CLI SAPI поставляется со встроенным веб-сервером. Он может быть использован для запуска ваших PHP-приложений локально во время разработки, для тестирования или для демонстрации приложения. Таким образом, вам не нужно заморачиваться конфигурацией полномасштабного веб-сервера такого, как Apache или Nginx.
Caution
Встроенный веб-сервер должен быть запущен только в контролируемом окружении. Он не создан для использования в публичных сетях.
Запуск веб-сервера
Запустить приложение Symfony с использованием встроенного веб-сервера PHP так
же легко, как выполнить команду server:start
:
1
$ php bin/console server:start
Это запускает веб-сервер в localhost:8000
в фоновом режиме, который обслуживает
ваше приложение Symfony.
По умолчанию, веб-сервер слушает порт 8000 на закольцованном устройстве. Вы можете изменить канал, передающий IP-адрес и порт, в качестве аргумента командной строки:
1
$ php bin/console server:start 192.168.0.1:8080
Note
Теперь вы можете использовать команду server:status
, чтобы проверить, слушает
ли веб-сервер определённый канал:
1 2 3
$ php bin/console server:status
$ php bin/console server:status 192.168.0.1:8080
Первая команда показывает вам, будет ли ваше приложение Symfony использовать
сервер чере localhost:8000
, а вторая делает то же самое для 192.168.0.1:8080
.
Tip
Некоторые системы не поддерживают команду server:start
, в этих случаях
вы можете выполнить команду server:run
. Эта команда ведёт себя немного
по-другому. Вместо запуска сервера в фоновом режиме, она заблокирует текущий
терминал до того, как вы её прервёте (это делается путём нажатия Ctrl и C).
Опции команды
Встроенный веб-сервер ожидает скрипт "маршрутизатора" (прочитайте про скрипт
"маршрутизатора" на php.net) в качестве аргумента. Symfony уже передаёт
такой скрипт, когда команда выполняетя в окружени prod
или dev
. Используйте
опцию --router
в любом другом окружении, или используйте другой скрипт маршрутизатора:
1
$ php bin/console server:start --env=test --router=app/config/router_test.php
Если корневой документ вашего приложения отличается от стандартного макета каталога,
вам нужно передать правильную локацию, используя опцию --docroot
:
1
$ php bin/console server:start --docroot=public_html
Остановка сервера
Когда вы закончили, вы можете просто остановить веб-сервер, используя команду
server:stop
:
1
$ php bin/console server:stop
Как и с командой запуска, если вы опустите информацию о канале, Symfony остановит
сервер, привязанный к localhost:8000
. Просто передайте информацию о канале,
когда веб-сервер слушает другой IP-адрес или другой порт:
1
$ php bin/console server:stop 192.168.0.1:8080