bigquery php客户端无法与Apache网页一起使用(Ubuntu 18.10服务器)

时间:2018-12-30 10:12:00

标签: php apache ubuntu google-bigquery

我在Ubuntu 18.10服务器上有一个工作正常的Apache 2.4网站,可处理Php 7页面。

我的示例基于: 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异常

1 个答案:

答案 0 :(得分:2)

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

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

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

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

以用户x身份登录时可见

 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并成功。