我正在尝试在 App Engine flex 环境中实现 Google 的文本转语音 API,但出现此错误:
“PHP 消息:PHP 致命错误:未捕获错误:调用未定义
函数 Google\Protobuf\Internal\bccomp() 中
/app/web/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php:941"
一旦我通过在我的composer.json中要求BCmath()解决了问题
{
"require": {
"ext-bcmath": "*",
"google/cloud-text-to-speech": "^1.0",
"google/gax": "^1.3",
"grpc/grpc": "^1.4",
"google/auth": "^1.8",
"phpseclib/phpseclib": "^2.0",
"google/protobuf": "^3.11"
}
}
然后重新安装 /vendor 后我无法摆脱错误消息。我尝试通过运行来安装 BCmath 扩展
sudo apt install php7.2-bcmath
但它说扩展已经安装。
我也运行这个
php-i | grep -i bcmath
并收到此消息
/etc/php/7.2/cli/conf.d/20-bcmath.ini,bcmath BCMath 支持 =>
启用 bcmath.scale => 0 => 0
bccomp() 的测试
php -r "echo bccomp('1', '2');"
我按预期得到“-1”。看起来该功能有效。
我什至尝试在 php.ini 中启用 BCmath 扩展
extension=bcmath.so
我将 .ini 文件放在与 /vendor 和 index.php 相同的目录中。尽管如此,在部署应用程序后
gcloud app deploy
我仍然收到致命错误。