php - 通过 ssl 从 php 应用程序连接到 gearman 服务器

标签 php gearman

我正在尝试加密从 php 5.6.40 上运行的应用程序到 gearman 服务器(版本 1.1.12)的连接。我已经启动 gearman 服务器启用 ssl 并传递 ca 文件、证书和 key 作为参数。

gearmand -d --ssl --ssl-ca-file=ca.crt --ssl-certificate=gearman.crt --ssl-key=gearman.key

我现在遇到的问题是让我的 php 客户端使用 ssl。我正在使用 php gearman 扩展附带的 GearmanClient 类,但我无法找到实现此目的的方法。

 $gearmanClient = new GearmanClient();
 $gearmanClient->addServer('server ip', 4730);
 $result = $gearmanClient->doHighBackground('job-type', 'workload');

上面的代码可以工作,但作业类型和工作负载未加密地发送到 gearman 服务器。如果php的gearman扩展无法实现,有人知道我们是否可以使用套接字函数来实现这一点吗?我已经浏览了很多与此相关的线程,但找不到正确的答案。如果已经回答了这个问题,我们深表歉意。

最佳答案

gearmand 中的 SSL 支持运行良好。我已经在生产环境中使用它大约三年了。另一个答案中提到的问题仍然悬而未决,因为该问题实际上是关于对文档进行改进,而愿望 list 项目尚未解决。

在 PHP 扩展中获得 SSL 支持是可能的,但需要您自己修补和编译代码。 PHP 扩展的当前版本可以在 https://github.com/wcgallego/pecl-gearman 找到。 ,但那是针对 PHP 7.x 的。

据我所知,旧版 PHP (< 7.x) 的 Gearman PECL 扩展已不再维护,但您可以在 https://github.com/hjr3/pecl-gearman 下载最新版本。并在 https://bugs.php.net/bug.php?id=67623 应用补丁。有用。我的工作场所在生产中使用了大约一年的时间,然后才转向 PHP 7.x。

如果您使用的是 PHP 7+,我最近在 https://github.com/wcgallego/pecl-gearman/pull/72 上打开了一个添加 SSL 支持的 PR 。您还应该阅读 https://github.com/wcgallego/pecl-gearman/issues/43 上的问题线程。一些注意事项。

无论哪种情况,您还需要 gearmand 1.1.19 或更高版本中的 libgearman.so,它是使用 --enable-ssl 编译的,并且支持 setSSL() API。

关于php - 通过 ssl 从 php 应用程序连接到 gearman 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046197/

相关文章:

macos - 如何在 Mac OS X 上安装 libuuid?

cron - 使用齿轮工与 cron 进行调度?

javascript - 你能动态加载表单参数吗

php - 我的 $_SESSION 变量只获取数组中每个索引的第一个字母

php - 使用 cURL 执行 SOAP

php - javascript翻译,在php中编码,在javascript中解码

java - PHP-Java 互操作 - Gearman 还是 PJB?

message-queue - 2015 年我可以围绕 Gearman 构建一个软件吗?

php - 无法为 Wordpress 插件创建 MYSQL 表