【问题标题】:Php Artisan serve command not serving Laravel 5.8Php Artisan serve 命令不服务于 Laravel 5.8
【发布时间】:2019-08-12 21:01:13
【问题描述】:

我使用 5.8 版安装了一个新的 Laravel 实例。一路走来,我发现我无法使用普通的 Laravel php artisan serve 命令为项目服务。

经过大量反复试验的研究后,我在 StackOverflow 上遇到了这个 answer,它帮助我使用了这种方法 php -S localhost:8000 -t public/,然后我将 the port 更改为 port 9000,,它完美地服务于项目.

现在我的问题是如何让 artisan 命令成为默认命令,像以前一样在 Windows 上为我的 Laravel 5.8 提供服务和朗姆酒?我对配置 Laravel 核心命令一无所知。

【问题讨论】:

  • 你输入php artisan serve 后遇到什么错误?
  • 端口错误有点奇怪,因为5.8 版本的功能之一是在端口冲突的情况下尝试从80008009 的不同端口。因此,至少您的端口已满,问题一定出在其他地方。请使用-vvv 选项并提供您遇到的错误。
  • 在你尝试访问 localhost:8000 后观察你的终端输出。也许问题出在您的 PHP 配置中。当您使用 php -S localhost:8000 -t public/ 时,它是您的 PHP 内置服务器。

标签: php laravel laravel-artisan laravel-5.8


【解决方案1】:

我试过这个命令。

php -S  127.0.0.1:9000 -t public/

运行后它工作正常。

php artisan serve 命令也可以正常工作。

希望它会有所帮助。

【讨论】:

    【解决方案2】:

    您应该打开 ServeCommand.php 文件(Illuminate\Console),然后更改 getOptions 方法

    protected function getOptions()
    {
        $host = env('SERVE_HOST', '127.0.0.1');  
        $port = env('SERVE_PORT', 8080);
    
        return [
            ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', $host],
            ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', $port],
        ];
    }
    

    在您的 .env 文件中创建 SERVE_HOSTSERVE_PORT 时

    SERVE_HOST=localhost
    SERVE_PORT=9000
    

    source

    【讨论】:

    • 不要更改供应商文件,这些更改可能会被作曲家覆盖。相反,从它继承您自己的命令,覆盖所述方法并注册它(如果没有自动完成)。它将替换默认的。
    【解决方案3】:

    您可以在端口 80 上运行项目。如果您使用的是 Linux,只需在具有 root 用户权限的嵌入式服务器上运行命令即可。

    例子:sudo php -S localhost: 80 -t public /

    【讨论】:

      猜你喜欢
      • 2015-04-03
      • 1970-01-01
      • 2019-12-26
      • 2014-12-07
      • 2019-08-18
      • 2017-04-02
      • 2021-05-27
      • 2018-02-22
      • 2019-08-01
      相关资源
      最近更新 更多