簡體   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