You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于NetBeans的PHP Google API项目本地正常,共享主机运行异常求助

共享主机上Google API服务账号认证无响应的解决建议

1. 彻底校验依赖文件完整性

FTP上传容易丢文件,别只补单个文件夹,直接做全量验证:

  • 本地先执行composer dump-autoload确保自动加载映射正确
  • 将整个vendor文件夹打包为ZIP,通过主机控制面板的文件管理器上传后解压,比FTP稳定
  • 对比本地与主机上的vendor/google/apiclient/src/Google/Auth目录,确认核心文件(如ServiceAccountCredentials.php、OAuth2.php)完整存在

2. 修正服务账号密钥路径

putenv里的绝对路径在共享主机几乎无效,换更可靠的方式:
直接放弃环境变量,在初始化客户端时指定密钥文件的相对路径(结合__DIR__确保准确性),替换原代码中putenv和useApplicationDefaultCredentials的部分:

require_once __DIR__ . '/vendor/autoload.php';       

echo "trying the shared hosting service call<br>";      

// 直接指定密钥文件路径,替代putenv和useApplicationDefaultCredentials
$client = new Google\Client();
$client->setAuthConfig(__DIR__ . '/vendor/pc-api-90898980932-543-8985erdc9923.json');
$client->setApplicationName('myapplicationname');
$client->addScope(Google\Service\AndroidPublisher::ANDROIDPUBLISHER);

echo "CLIENTCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC<br>";
echo var_dump($client)."<br>";
$service = new Google\Service\AndroidPublisher($client);
echo "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS<br>";
echo var_dump($service)."<br>";

注意:共享主机的/是服务器根目录,不是你的网站根目录,绝对不要用/vendor/xxx.json这种路径

3. 排查SSL证书问题

Google API要求HTTPS请求,若主机证书不被信任会导致请求失败:

  • 确认主机SSL证书是正规CA签发(如Let's Encrypt),可通过浏览器地址栏锁标检查
  • 强制PHP使用Google API Client自带的可信CA证书,在index.php开头添加:
ini_set('curl.cainfo', __DIR__ . '/vendor/google/apiclient/cacert.pem');

4. 开启错误输出排查根源

无响应大概率是PHP报错被屏蔽,先打开错误显示:

// 放在index.php最顶部
error_reporting(E_ALL);
ini_set('display_errors', 1);

这样能直接看到具体错误(如文件缺失、权限不足、SSL验证失败),快速定位问题

5. 调整文件权限

共享主机对权限限制严格:

  • 服务账号密钥文件(pc-api-xxx.json)设为600权限(仅所有者可读),避免泄露
  • vendor文件夹及子文件设为755权限,确保PHP进程能读取

内容的提问来源于stack exchange,提问作者i_o

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 12:15:42