|
15 | 15 | use Symfony\Component\Console\Input\InputOption;
|
16 | 16 | use Symfony\Component\Console\Input\InputInterface;
|
17 | 17 | use Symfony\Component\Console\Output\OutputInterface;
|
| 18 | +use Symfony\Component\Process\PhpExecutableFinder; |
18 | 19 | use Symfony\Component\Process\ProcessBuilder;
|
19 | 20 |
|
20 | 21 | /**
|
@@ -99,7 +100,10 @@ protected function execute(InputInterface $input, OutputInterface $output)
|
99 | 100 | $output->writeln(sprintf("Server running on <info>http://%s</info>\n", $input->getArgument('address')));
|
100 | 101 | $output->writeln('Quit the server with CONTROL-C.');
|
101 | 102 |
|
102 |
| - $builder = $this->createPhpProcessBuilder($input, $output, $env); |
| 103 | + if (null === $builder = $this->createPhpProcessBuilder($input, $output, $env)) { |
| 104 | + return 1; |
| 105 | + } |
| 106 | + |
103 | 107 | $builder->setWorkingDirectory($documentRoot);
|
104 | 108 | $builder->setTimeout(null);
|
105 | 109 | $process = $builder->getProcess();
|
@@ -137,11 +141,18 @@ private function createPhpProcessBuilder(InputInterface $input, OutputInterface
|
137 | 141 | if (!file_exists($router)) {
|
138 | 142 | $output->writeln(sprintf('<error>The given router script "%s" does not exist</error>', $router));
|
139 | 143 |
|
140 |
| - return 1; |
| 144 | + return null; |
141 | 145 | }
|
142 | 146 |
|
143 | 147 | $router = realpath($router);
|
| 148 | + $finder = new PhpExecutableFinder(); |
| 149 | + |
| 150 | + if (false === $binary = $finder->find()) { |
| 151 | + $output->writeln('<error>Unable to find PHP binary to run server</error>'); |
| 152 | + |
| 153 | + return null; |
| 154 | + } |
144 | 155 |
|
145 |
| - return new ProcessBuilder(array(PHP_BINARY, '-S', $input->getArgument('address'), $router)); |
| 156 | + return new ProcessBuilder(array($binary, '-S', $input->getArgument('address'), $router)); |
146 | 157 | }
|
147 | 158 | }
|
0 commit comments