diff --git a/application/admin/command/RunServer.php b/application/admin/command/RunServer.php
new file mode 100644
index 0000000000000000000000000000000000000000..acf90fd7d34711f5d03e2cb508e5946174e1c57a
--- /dev/null
+++ b/application/admin/command/RunServer.php
@@ -0,0 +1,52 @@
+
+// +----------------------------------------------------------------------
+namespace app\admin\command;
+
+use think\console\Command;
+use think\console\Input;
+use think\console\input\Option;
+use think\console\Output;
+
+class RunServer extends Command
+{
+ public function configure()
+ {
+ $this->setName('run')
+ ->addOption('host', 'H', Option::VALUE_OPTIONAL,
+ 'The host to server the application on', '127.0.0.1')
+ ->addOption('port', 'p', Option::VALUE_OPTIONAL,
+ 'The port to server the application on', 8000)
+ ->addOption('root', 'r', Option::VALUE_OPTIONAL,
+ 'The document root of the application', ROOT_PATH . 'public')
+ ->setDescription('PHP Built-in Server for ThinkPHP');
+ }
+
+ public function execute(Input $input, Output $output)
+ {
+ $host = $input->getOption('host');
+ $port = $input->getOption('port');
+ $root = $input->getOption('root');
+
+ $command = sprintf(
+ 'php -S %s:%d -t %s %s',
+ $host,
+ $port,
+ escapeshellarg($root),
+ escapeshellarg($root . DIRECTORY_SEPARATOR . 'router.php')
+ );
+
+ $output->writeln(sprintf('ThinkPHP Development server is started On ', $host, $port));
+ $output->writeln(sprintf('You can exit with `CTRL-C`'));
+ $output->writeln(sprintf('Document root is: %s', $root));
+ passthru($command);
+ }
+
+}
diff --git a/application/command.php b/application/command.php
index ab4178a367a3e8cc6cb238a9538d17f85785980f..b6e76a9b650ef441187a028e7481348b0f2dd3fd 100755
--- a/application/command.php
+++ b/application/command.php
@@ -17,4 +17,5 @@ return [
'app\admin\command\Min',
'app\admin\command\Addon',
'app\admin\command\Api',
+ 'app\admin\command\RunServer',
];