Laravel -提供自定义端口,无--port选项

ix0qys7i  于 2023-02-10  发布在  其他
关注(0)|答案(3)|浏览(216)

有没有办法在自定义端口服务一个laravel应用程序,而不使用--port或者任何web服务器,比如nginx,apache,...?也许我们可以改变源代码。有没有可能?

jhdbpxl9

jhdbpxl91#

溶液1

您可以转到此文件:

vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php

并在线87改变默认端口。

87     ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', 8000],

这种方式将允许您使用php artisan serve命令与您在该文件中设置的端口。(默认值为8000)。
但请记住,不建议更改供应商文件夹内的代码。

溶液2

您可以使用wanted port创建别名,类似于:

paserve=php artisan serve --port=8080

然后当你调用paserve时,你会在那个端口上得到应用程序

fkaflof6

fkaflof62#

正确的答案是伟大的!但我做了一个不同的解决方案,非常适合我对Laravel 8
首先,使用以下命令创建一个新命令:
php artisan make:command RunServer或您想要的任何名称
然后,我将vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php类中的内容复制到我的RunServer类中
(记得更改protected $name,我使用了'run'而不是serve
我所做的就是添加一个新的.env变量Eg.:APP_DEFAULT_PORT
config/app.php =〉'default_port' => env('APP_DEFAULT_PORT'),上添加新变量
并在RunServer类中调用这个变量
$port = $port ?: 8000;

x1米11米1x

h6my8fg2

h6my8fg23#

好吧,说到设置一个默认端口来监听,没有必要创建一个自定义命令,而只是在.env文件中设置SERVER_PORT=〈a free port number〉。
从v5.8到现在,ServeCommand getOptions()函数负责SERVER_PORT环境变量,这是此类情况下最简单的解决方案:
https://github.com/laravel/framework/blob/5.8/src/Illuminate/Foundation/Console/ServeCommand.php#L115
最好的K

相关问题