我输入了这3个参数:
grpc.keepalive_time_ms=7200000
grpc.keepalive_timeout_ms=200000
grpc.keepalive_permit_without_calls=1
在
/etc/php/8.1/apache2/conf.d/20-grpc.ini
、/etc/php/8.1/apache2/conf.d/custom-php.ini
、/etc/php/8.1/cli/conf.d/20-grpc.ini
和 /etc/php/8.1/cli/conf.d/custom-php.ini
。然后我重新启动网络服务器(整个 Docker 容器)并使用 php -i | grep grpc
列出 grpc 配置,但输出中缺少它们:
/etc/php/8.1/cli/conf.d/20-grpc.ini,
grpc
grpc support => enabled
grpc module version => 1.59.1
grpc.enable_fork_support => 0 => 0
grpc.grpc_trace => all,-timer_check => all,-timer_check
grpc.grpc_verbosity => debug => debug
grpc.log_filename => /var/log/grpc.log => /var/log/grpc.log
grpc.poll_strategy => no value => no value
我使用 PHP 8.1、gRPC 扩展 1.45.0 和 1.59.1 对其进行了测试。 我做错了什么?
您正在更改/读取错误的 PHP SAPI:您编辑了 Apache(Web SAPI)的 PHP 配置文件,但您从命令行(CLI SAPI)检查配置。
您的更改实际上仅适用于 Apache。我对 gRPC 不了解,但如果您只想在通过 Apache 运行 PHP 时应用您的配置,请在网页上检查它(例如运行
phpinfo()
)。
如果您还希望将配置应用于 CLI,请将其放入 PHP CLI 将读取的文件中(根据您的命令输出:
/etc/php/8.1/cli/conf.d/20-grpc.ini
)。
要了解有关 PHP 配置如何读取 .ini 文件的更多信息,请使用 CLI 上的
php -i
和网页上的 phpinfo()
检查目录中是否有其他 .ini 文件。