rse*_*ara 5 php google-cloud-storage laravel google-cloud-platform google-cloud-sdk
我正在使用 Laravel 5.2,并且php artisan config:cache
按照官方文档中的建议进行操作以提高速度。
您可能知道,此命令使 .env 文件变量直接不可访问(您可以使用 测试它php artisan tinker
),因此,除了 config 文件夹中的文件外,所有对env()
和函数的调用都必须在代码中getenv()
替换为。config()
执行该命令后,调用类似env('APP_ENV')
return NULL。
在我的项目中,我使用google-auth-library-php连接到 Google Cloud 。getenv(self::ENV_VAR)
不幸的是,在 CredentialsLoader.php 文件中,有一个对尝试获取 Google 凭据文件路径的函数的调用。当我运行命令时php artisan config:cache
,无法从 .env 文件读取路径,并且连接无法完成。
我可以看到 3 种继续的方法:
php artisan config:cache
。getenv()
,config()
运行命令并在存储库中跟踪此文件,然后在拉取时此更改将传播到每个团队成员。先感谢您!
这是一个非常古老的问题,但也许对于那些在 Laravel 的新版本中遇到同样问题的人来说可能很有用。基本上我没有一个适用于所有可能环境的解决方案,但它给出了想法。我的环境运行php7.4-fpm
于NGINX
. 如果您使用相同的环境,您将拥有location
php 文件的指令。Nginx 可以设置 FastCGI 参数fastcgi_param
,您可能已经使用过它SCRIPT_FILENAME
等。然后您可以添加
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
[...]
fastcgi_param GOOGLE_APPLICATION_CREDENTIALS "/absolute/path/to/keyfile.json";
}
Run Code Online (Sandbox Code Playgroud)
然后只需重新加载 Nginx(例如 Ubuntu 20.04,sudo systemctl reload nginx
)。
对于 Apache,同样的想法可能适用于SetEnv
https://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv
归档时间: |
|
查看次数: |
2851 次 |
最近记录: |