为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
素胚勾勒不出你 2022-05-27 10:13:14
我正在尝试加密从在 php 5.6.40 上运行的应用程序到 gearman 服务器(版本 1.1.12)的连接。我已经启动了启用 ssl 的 gearman 服务器,并将 ca 文件、证书和密钥作为参数传递。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 扩展无法实现,有人知道我们是否可以使用套接字函数来实现这一点吗?我已经经历了很多与此相关的线程,但找不到正确的答案。抱歉,如果这已经得到回答。
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

gearmand 中的 SSL 支持工作得很好。我已经在生产环境中使用它大约 3 年了。另一个答案中提到的问题仍然存在,因为该问题实际上是关于改进文档,并且该愿望清单项目尚未解决。

在 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打开了一个 PR 以添加 SSL 支持。您还应该阅读https://github.com/wcgallego/pecl-gearman/issues/43上的问题主题,了解一些注意事项。

在任何一种情况下,您还需要一个libgearman.so来自 gearmand 1.1.19 或更新版本的编译--enable-ssl并支持setSSL()API。


查看完整回答
反对 回复 2022-05-27
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我之前犹豫回答这个问题,因为它与PHP有关。

实际上gearmand正确支持 SSL 连接。@emix 提到的问题仍然存在,因为repositorygearmand中没有针对自身的ssl 测试。

gearmand 客户端/工作器的 Perl 实现支持 SSL 连接并为此目的包含ssl 测试


查看完整回答
反对 回复 2022-05-27
?
白板的微信

TA贡献1883条经验 获得超3个赞

据称 SSL无法正常工作。这是很久以前发布的一个错误,这个问题仍然被认为是开放的。官方扩展似乎也死了:上一个版本是 6 年前。

如果我站在你的立场上,我会切换到更稳定的、有更好社区支持的东西。


查看完整回答
反对 回复 2022-05-27
  • 3 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信