Использование встроенного веб-сервера PHP с производственным режимом Symfony
Я только что создал новое приложение Symfony 3.4. Согласно документам Symfony, я могу сервировать свое приложение, используя встроенный веб-сервер PHP, запустив
php bin/console server:start
Однако - похоже, что приложение запускается в режиме разработки. К сожалению, включена печать исключений, отображается панель инструментов разработчика и т. Д.
Есть ли способ использовать встроенный веб-сервер в производственном режиме Symfony? Это не серверное приложение для публики (что было бы глупо), а потому, что я хочу протестировать проблему, может возникнуть только в рабочем режиме.
2 ответа
Вместо серверной команды symfony вы можете запустить встроенный веб-сервер PHP напрямую с помощью следующей команды:
php -S localhost:8000 -t web/ app.php
Это предполагает, что вы находитесь в каталоге вашего проекта и что web/
каталог хостов вашего app.php
файл.
-t
обозначает корень документа. В этом примере это web/
,
app.php
указан в качестве скрипта маршрутизатора и будет обрабатывать ваш запрос.
Подробнее о встроенной в PHP команде веб-сервера
Теперь, когда вы идете в localhost:8000
он будет обслуживать ваш проект Symfony в Production
Режим.
Это не запускает сервер в фоновом режиме, но вы можете легко найти в Google, как это сделать.
Если вы используете Symfony 4, вам нужно включить серверный пакет для all
среда в bundles.php
файл. По умолчанию он включен только для dev
,
<?php
return [
// ...
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
];
Да, вы указываете app.php
на URL, который вы вводите в браузере, так что-то вроде этого
mysite.dev/app.php/login
Или же
localhost:8000/app.php/login
По умолчанию он будет автоматически использовать app_dev.php
php -S localhost:8000 -t web/ web/app.php
Это сработало для меня. В противном случае будет выдана эта ошибка: Неустранимая ошибка PHP: Неизвестно: Не удалось открыть файл app.php (include_path='.:/ Usr/local/lib/php') в Неизвестном в строке 0