【问题标题】:PHP postgres enable ssl supportPHP postgres 启用 ssl 支持
【发布时间】:2021-08-10 13:47:36
【问题描述】:

很抱歉就多年前提出的问题回复您。但我真的坚持这一点。 我有一个非常旧的遗留应用程序,运行 PHP 5.2.17。 我按照本指南设置我的 docker 容器 https://andrewscaya.net/blog/bringing-php-52-back-life

我已正确设置所有内容。我下载并编译了一个 PHP 安装并使用 Apache 进行了配置。并且它与 php 一起工作正常。

但是,我必须为 POSTGRES 连接提供 SSL 支持(在 PHP 中)。 根据 PHPINFO,现在默认未启用

我基本上遇到了很多年前别人遇到的同样问题。 Pgsql 的 SSL 支持
看: Enable SSL support for pgsql

所以据我了解,我需要再次重新编译 PHP,但是使用名为 libpg 的包? 我在哪里可以得到这个包,如何用 PHP 源代码编译它?

【问题讨论】:

  • 这不能回答您的问题,但从长远来看,我强烈建议您迁移到更新版本的 PHP。对 5.2 的支持已于 2014 年 8 月停止,这意味着您将无法获得安全更新或错误修复,而且由于很少有人使用它,因此获得支持(即使是基于社区的)也很困难。我最近从 5.4 迁移到 7.4,包括一些需要大量重写代码的复杂应用程序,而且还不错。从 5.2 迁移到其他 5.x 会更容易。但最好尝试使用积极支持的版本。

标签: php postgresql php-pgsql


【解决方案1】:

经过 2 天的搜索,我终于找到了 LAPP 堆栈,其中有一些支持 pgsql ssl 的旧版本 https://community.bitnami.com/t/can-i-get-the-installers-for-wapp-and-lapp-stacks-for-5-4-45/38548

【讨论】:

    【解决方案2】:

    从长远来看,我会建议升级 PHP 版本,但我知道这可能需要大量工作。有很多关于升级版本的好指南。我建议逐个进行版本升级,一次一个地处理弃用的功能和其他潜在问题,并测试每个脚本。

    在短期内,我不确定这是否可行,但 PDO 在 5.2 中受支持(实际上甚至在 5.1 中)并且由于它只是将信息传递给 PostgreSQL 库,我希望 SSL 支持能够工作。我在 5.4 中使用过,我不知道这两个版本之间有什么变化。

    这里有一个解决方案,由 IMSoP 提供,它解释了如何使其工作,并在您需要更多信息时为您提供更多官方文档:Connecting to PGSQL over SSL via PHP PDO

    如果失败,我会尝试的第二种方法是创建一个 SSH 隧道来连接到本地端口。一个例子是:

    ssh -L 127.0.0.1:5443:127.0.0.1:5432 username@remoteboxaddress
    

    然后,您可以在端口5433 上启动看起来像本地连接的 PHP,但它实际上是到远程机器的(安全)SSH 隧道。这还需要将远程框配置为接受(未加密的)本地连接,并且您可以通过 SSH 访问它。然后,如果你测试它并且它可以工作,你可以编写一个脚本来在启动时启动隧道,或者更好的是,当网络服务器启动时;这需要使用身份验证方法,例如存储在文件中的密钥,不需要输入密码。所以......这里有很多“如果”,就您是否能够让这个解决方案工作而言,但如果您在两台服务器上都具有 root 访问权限,并且偶尔如果您这样做,则可以完成不是,取决于它们的配置方式。

    希望这两种解决方案中的一种对您有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-22
      • 2022-07-23
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      相关资源
      最近更新 更多