我在Ubuntu 18.10服务器上有一个工作正常的Apache 2.4网站,可处理Php 7页面。
当我从命令行运行页面时
php filex.php
bigquery工作正常,我可以看到数据。 当我尝试从apache网络服务器查看它时,页面的第一部分会呈现出来,然后出现错误,并且bigquery部分丢失了。
/ var / log / apache2中的错误
PHP致命错误未捕获的Google Cloud异常
答案 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
这给了我解决方案
nano /etc/apache2/envvars
我将该行添加到了(主要是空的)脚本的底部
export GOOGLE_APPLICATION_CREDENTIALS="/bigquery/project1/accountdetails-xxxxxxxxxxxx.json"
我重新启动了服务器。 现在,网页可以按预期工作。
==================
Nginx
还需要配置nginx才能正常工作(Ubuntu 18.10,nginx 1.14。)
/etc/php/7.2/fpm/pool.d $
编辑的www.conf
uncomment
;clear_env = no
添加的行
env[GOOGLE_APPLICATION_CREDENTIALS] = /bigquery/project1/accountdetails-xxxxxxxxxxxx.json
重新启动nginx并成功。