gpt4 book ai didi

php - 在启用 Argon2 的 Amazon Linux 2 上安装 PHP

转载 作者:行者123 更新时间:2023-12-04 17:38:20 25 4
gpt4 key购买 nike

我在启用 Argon2 进行密码散列时遇到问题。我正在从 Amazon Linux 2 的源代码构建 PHP,但是一旦构建完成并且 PHP 被编译,PASSWORD_ARGON2I常量未定义且算法不可用。

我尝试了许多不同的方法来使用不同的库编译 PHP,但没有一种方法可以提供我需要的 Argon2 算法。下面我将列出我采取的一些步骤:

1) 赠旗--with-sodium
使用此标志编译完成,但运行包含函数 password_hash() 的测试脚本显示 Argon2I 不可用。

2) 使用标志编译 --with-password-argon2
由于缺少库,这无法编译,这可以在下面的错误中看到。

checking for Argon2 support... yes
checking for Argon2 library... not found
configure: error: Please ensure the argon2 header and library are installed

由此,我假设我缺少标志工作所需的库,所以我安装了 Libsodium .再次尝试具有相同的结果。

3)接下来,我根据教程中的建议安装更多依赖项。这些是:
- 氩气2
- 利巴贡2-0
- libargon2-0-dev

这确实给了我 cli 工具 argon2这有效,但是再次编译 PHP 不会出现相同的错误。

在这一点上,我不确定我的下一步是什么,任何帮助将不胜感激。

最佳答案

我收到了 不支持 Argon2i.. 尝试在运行 PHP72 的 Cloud9 EC2 实例上安装 LexikJWTAuthenticationBundle 时出错。
经过大量研究,我想出了一个解决方案。

以下是要遵循的步骤。

安装 libsodium:

$ sudo yum install libsodium-devel

安装后,如果您运行此命令来查看 PHP 模块,您可能会看到列出的 libsodium,但它并不存在。
$ php -m 

该包实际上安装为sodium.so而不是libsodium.so(也许这是问题的根源?)
要让 PHP 加载模块,需要一些手动步骤。

转到 PHP 查找已安装模块的目录。
$ cd /etc/php.d

创建一个指向sodium.so 包的文件。
$ sudo touch libsodium.ini

授予文件读/写权限。
$ sudo chmod 666 20-libsodium.ini

在编辑器中打开文件。我喜欢使用vim。
$ vi libsodium.ini

单击“i”键进入插入模式并粘贴以下内容:
; Enable sodium extension module
extension=sodium.so

通过单击转义键并键入以下内容来保存文件:
:wq!

现在,如果您通过键入 php -m 查看已安装的 PHP 模块,您将看到列出的 libsodium。

此时,您应该能够运行引发 Argon2i 错误的任何内容。

仅供引用,我不是 PHP 开发人员,也不是 AWS 专家,但我必须让这个工作在 EC2 上部署公司 PHP 应用程序。因此,如果您对上述内容有任何疑问,我可能无法提供帮助..但我会尝试;)

关于php - 在启用 Argon2 的 Amazon Linux 2 上安装 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com