当我们运行" php artisan serve"时,如何将默认URL从localhost:8000更改为laravel中的其他Ip。

时间:2017-09-28 12:10:54

标签: php laravel-5

我是runnig" php artisan serve"命令

默认结果是-Laravel开发服务器已启动:http://127.0.0.1:8000

我想改变指向其他ip

5 个答案:

答案 0 :(得分:6)

# php artisan serve --help
Usage:
  serve [options]

Options:
      --host[=HOST]     The host address to serve the application on. [default: "127.0.0.1"]
      --port[=PORT]     The port to serve the application on. [default: 8000]
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
      --env[=ENV]       The environment the command should run under
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
  Serve the application on the PHP development server

答案 1 :(得分:3)

要更改artisan serve命令的默认主机和/或端口,您需要编辑ServeCommand.php文件:

$ sudo nano vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php

最后,您会发现它们是否已配置:

    protected function getOptions()
    {
        return [
            ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on', '127.0.0.1'],
            ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on', '8000'],
        ];
    }

只需将主机127.0.0.1的默认值更改为所需主机的ip。 8000代表您想要的端口号。

我的情况: 我有一个在GoogleCloud-ComputeEngine上运行的UbuntuServer 18.04 VM,直到将主机更改为0.0.0.0之前,我看不到Laravel执行,当然我也更改了端口,使其默认为80。

替代方法每次都执行:

$ sudo php artisan serve --host=0.0.0.0 --port=80

以获得相同的结果。

答案 2 :(得分:2)

您可以使用以下解决方案来解决您的问题:

php artisan serve --host 127.0.0.1 --port 80

答案 3 :(得分:0)

以上答案是可以接受的。
我在回答“必须更改哪个文件”的问题。如果要在没有php artisan serve的情况下运行--port={port_number},则可以使用ServeCommand.php方法在port()中更改端口号。

enter image description here

答案 4 :(得分:0)

作为@ Macr1408答案的补充,由于Laravel在此日期不提供主机名/ ip配置设置(如SERVER_PORT),因此您可以扩展ServeCommand类并重新定义父getOptions方法返回的内容。这是一个示例,允许您设置SERVER_HOST env配置值,该值将在运行artisan serve时更改IP /主机名:

namespace App\Console\Commands;

use Illuminate\Foundation\Console\ServeCommand as LaraServe;

class ServeCommand extends LaraServe
{
    protected function getOptions()
    {
        $options = parent::getOptions();
        $options[0][4] =  env('SERVER_HOST');

        return $options;
    }
}