'The PHP Binary [default: "PHP_BINARY"]', '-host' => 'The HTTP Host [default: "localhost"]', '-port' => 'The HTTP Host Port [default: "8080"]', ]; /** * Run the server * * @param array $params Parameters * * @return void */ public function run(array $params) { // Valid PHP Version? if (phpversion() < $this->minPHPVersion) { die('Your PHP version must be ' . $this->minPHPVersion . ' or higher to run CodeIgniter. Current version: ' . phpversion()); } // Collect any user-supplied options and apply them. $php = CLI::getOption('php') ?? PHP_BINARY; $host = CLI::getOption('host') ?? 'localhost'; $port = CLI::getOption('port') ?? '8080'; // Get the party started. CLI::write('CodeIgniter development server started on http://' . $host . ':' . $port, 'green'); CLI::write('Press Control-C to stop.'); // Set the Front Controller path as Document Root. $docroot = escapeshellarg(FCPATH); // Mimic Apache's mod_rewrite functionality with user settings. $rewrite = escapeshellarg(__DIR__ . '/rewrite.php'); // Call PHP's built-in webserver, making sure to set our // base path to the public folder, and to use the rewrite file // to ensure our environment is set and it simulates basic mod_rewrite. passthru($php . ' -S ' . $host . ':' . $port . ' -t ' . $docroot . ' ' . $rewrite); } }