built-in server: exit when docroot does not exist
When the server:run command is run with an invalid document root directory (for example, when being in the app directory and not changing the document root to ../web/), the command crashes on Windows with a 267 exit code. On Linux, the server starts but just publishes internal server errors.
This commit is contained in:
parent
cd005e69ff
commit
f143254220
@ -81,6 +81,14 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
|
$documentRoot = $input->getOption('docroot');
|
||||||
|
|
||||||
|
if (!is_dir($documentRoot)) {
|
||||||
|
$output->writeln(sprintf('<error>The given document root directory "%s" does not exist</error>', $documentRoot));
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
$env = $this->getContainer()->getParameter('kernel.environment');
|
$env = $this->getContainer()->getParameter('kernel.environment');
|
||||||
|
|
||||||
if ('prod' === $env) {
|
if ('prod' === $env) {
|
||||||
@ -96,7 +104,7 @@ EOF
|
|||||||
$output->writeln(sprintf("Server running on <info>http://%s</info>\n", $input->getArgument('address')));
|
$output->writeln(sprintf("Server running on <info>http://%s</info>\n", $input->getArgument('address')));
|
||||||
|
|
||||||
$builder = new ProcessBuilder(array(PHP_BINARY, '-S', $input->getArgument('address'), $router));
|
$builder = new ProcessBuilder(array(PHP_BINARY, '-S', $input->getArgument('address'), $router));
|
||||||
$builder->setWorkingDirectory($input->getOption('docroot'));
|
$builder->setWorkingDirectory($documentRoot);
|
||||||
$builder->setTimeout(null);
|
$builder->setTimeout(null);
|
||||||
$builder->getProcess()->run(function ($type, $buffer) use ($output) {
|
$builder->getProcess()->run(function ($type, $buffer) use ($output) {
|
||||||
if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
|
if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
|
||||||
|
Reference in New Issue
Block a user