laravel local.ERROR:未定义索引:AppServiceProvider.php中的HTTP_主机

laravel local.ERROR:未定义索引:AppServiceProvider.php中的HTTP_主机,laravel,Laravel,我使用laravel并拥有多个域,如example.com、example.co、example.org 此外,我还使用api和laravel任务调度来更新日、周、月的post视图 使用下面的代码根据输入的用户域制作dl服务器域 AppServiceProvider.php public function boot() { Schema::defaultStringLength(191); $dl_server = 'http://dl.' . str_r

我使用laravel并拥有多个域,如example.com、example.co、example.org

此外,我还使用api和laravel任务调度来更新日、周、月的post视图

使用下面的代码根据输入的用户域制作dl服务器域

AppServiceProvider.php

public function boot()
    {
        Schema::defaultStringLength(191);
        $dl_server = 'http://dl.' . str_replace('www.', '',$_SERVER['HTTP_HOST']) . '/';
        View::share('dl_server' , $dl_server);
    }
但在laravel日志文件中,我发现了许多错误

[2020-10-12 00:00:01] local.ERROR: Undefined index: HTTP_HOST {"exception":"[object] (ErrorException(code: 0): Undefined index: HTTP_HOST at /home2/exampleco/domains/example.com/example/app/Providers/AppServiceProvider.php:30)
[stacktrace]
#0 /home2/exampleco/domains/example.com/example/app/Providers/AppServiceProvider.php(30): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'Undefined index...', '/home2/exampleco...', 30, Array)
#1 [internal function]: App\\Providers\\AppServiceProvider->boot()
#2 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)
#3 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Support/helpers.php(522): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#4 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): value(Object(Closure))
#5 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#6 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Container/Container.php(591): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#7 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(828): Illuminate\\Container\\Container->call(Array)
#8 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(811): Illuminate\\Foundation\\Application->bootProvider(Object(App\\Providers\\AppServiceProvider))
#9 [internal function]: Illuminate\\Foundation\\Application->Illuminate\\Foundation\\{closure}(Object(App\\Providers\\AppServiceProvider), 23)
#10 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(812): array_walk(Array, Object(Closure))
#11 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\\Foundation\\Application->boot()
#12 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(211): Illuminate\\Foundation\\Bootstrap\\BootProviders->bootstrap(Object(Illuminate\\Foundation\\Application))
#13 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(320): Illuminate\\Foundation\\Application->bootstrapWith(Array)
#14 /home2/exampleco/domains/example.com/example/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129): Illuminate\\Foundation\\Console\\Kernel->bootstrap()
#15 /home2/exampleco/domains/example.com/example/artisan(37): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#16 {main}
"}
这个错误每分钟重复一次[2020-10-12 00:00:01],[2020-10-12 00:01:01]


问题出在哪里?

$\u服务器['HTTP\u主机]]
只有在从HTTP请求调用应用程序时才可用,错误日志显示它是从控制台调用的(例如:任务调度),因此该变量不存在

只需使用
empty()
isset()
进行变量检查,或者使用以下示例代码检查控制台中是否未运行:

if(!\App::runningincole()){
日志::调试(“AppServiceProvider::boot”。$\u服务器['HTTP\U主机]);
}

它无法获取
$\u服务器['HTTP\u主机]
添加检查
isset()
可能是某些流量没有使用
HTTP\u主机发送请求,可能是通过ip或其他方式访问您的站点的人。