gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:29:47 25 4
gpt4 key购买 nike

我有一个在 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 Web 服务器查看它时,页面的第一部分呈现然后出现错误并且缺少 bigquery 部分。

/var/log/apache2 中的错误

PHP fatal error 未捕获的 Google Cloud 异常

最佳答案

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

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

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

 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,它工作。

关于php - bigquery php 客户端不适用于 Apache 网页(Ubuntu 18.10 服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53976761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com