繁体   English   中英

bigquery php 客户端不适用于 Apache 网页(Ubuntu 18.10 服务器)

[英]bigquery php client not working with Apache web page (Ubuntu 18.10 server)

我在 Ubuntu 18.10 服务器上有一个可使用 Php 7 页面的 Apache 2.4 网站。

我的示例基于: https : //cloud.google.com/bigquery/docs/quickstarts/quickstart-client-libraries#client-libraries-install-php

当我像我一样从命令行运行页面时

php filex.php 

bigquery 有效,我可以看到数据。 当我尝试从 apache 网络服务器查看它时,页面的第一部分呈现然后出现错误并且缺少 bigquery 部分。

/var/log/apache2 中的错误

PHP 致命错误未捕获的 Google Cloud 异常

我猜这是 Apache 与我的用户 ID 的权限问题。 由于目录权限,我认为 Apache 可能难以访问 Bigquery php 客户端文件。

但是,问题是我没有正确设置环境变量。

我看过这里: https : //help.ubuntu.com/community/EnvironmentVariables并设置系统范围的环境变量 /etc/environment

 GOOGLE_APPLICATION_CREDENTIALS="/bigquery/project1/accountdetails-xxxxxxxxxxxx.json"

以 userx 身份登录时可见

 echo $GOOGLE_APPLICATION_CREDENTIALS

然后我遇到了https://medium.com/@william.b/setting-dynamic-environmental-variables-in-apache-from-the-os-1d5c1e2e9e6c

这给了我解决方案

 nano /etc/apache2/envvars

我将这一行添加到(主要是空的)脚本的底部

export GOOGLE_APPLICATION_CREDENTIALS="/bigquery/project1/accountdetails-xxxxxxxxxxxx.json"

我重新启动了服务器。 现在网页按预期工作。

====================

nginx

还需要配置 nginx 才能工作(Ubuntu 18.10、nginx 1.14。)

来自https://medium.com/@tomahock/passing-system-environment-variables-to-php-fpm-when-using-nginx-a70045370fad

/etc/php/7.2/fpm/pool.d$

编辑 www.conf

uncomment 
;clear_env = no

添加行

env[GOOGLE_APPLICATION_CREDENTIALS] = /bigquery/project1/accountdetails-xxxxxxxxxxxx.json

重新启动 nginx 并且它起作用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM