You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel扩展在Ubuntu服务器引发Google Sheets API错误排查

问题描述

我在Laravel v8项目中引入Google API,执行了以下命令:

composer require revolution/laravel-google-sheets
php artisan vendor:publish --provider="PulkitJalan\Google\GoogleServiceProvider" --tag="config"

配置凭证后,该功能在Lightsail/Bitnami测试服务器运行正常。将分支拉取到Lightsail/Ubuntu正式服务器,执行composer install并确认两台服务器的包版本、.env文件内容一致,但连接表格时出现错误:

Argument 1 passed to PulkitJalan\Google\Client::__construct() must be of the type array, null given, called in /vendor/pulkitjalan/google-apiclient/src/GoogleServiceProvider.php on line 31

错误指向以下代码:

public function register()
{
    $this->mergeConfigFrom(__DIR__.'/../config/google.php', 'google');

    $this->app->bind('PulkitJalan\Google\Client', function ($app) {
        return new Client($app['config']['google']);
    });
}

请问问题出在哪里?


问题原因与解决方案

这个错误的核心是$app['config']['google']返回了null,说明Laravel未正确加载Google相关配置。以下是排查和解决步骤:

  • 检查配置文件是否存在
    正式服务器可能未成功发布配置文件,重新执行发布命令:

    php artisan vendor:publish --provider="PulkitJalan\Google\GoogleServiceProvider" --tag="config"
    

    执行后确认config/google.php文件存在且内容完整。

  • 清除配置缓存
    正式服务器若执行过php artisan config:cache,会导致新配置无法生效。执行以下命令清除缓存:

    php artisan config:clear
    

    若需要重新缓存配置,确保所有配置正确后再执行php artisan config:cache。

  • 验证.env变量引用正确性
    检查config/google.php中的配置项是否正确关联.env变量,例如:

    'client_id' => env('GOOGLE_CLIENT_ID'),
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),
    'redirect_uri' => env('GOOGLE_REDIRECT_URI'),
    // 其他必填配置项
    

    同时确认正式服务器的.env文件中这些变量无拼写错误,且值正确。

  • 重新安装依赖
    尽管包版本一致,仍可能存在依赖安装不完整的情况,重新执行:

    composer install --no-dev --optimize-autoloader
    

    确保pulkitjalan/google-apiclient等依赖完全安装。

  • 确认配置加载状态
    可在临时路由/控制器中添加代码验证配置是否加载:

    dd(config('google'));
    

    若输出null,继续排查配置文件发布和缓存问题;若为数组,检查数组内必填项是否均有有效值。


内容的提问来源于stack exchange,提问作者user1899829

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:22:28