在启用Argon2的AmazonLinux2上安装PHP
我在启用Argon2进行密码哈希时遇到问题。我是从AmazonLinux2的源代码构建PHP的,但是一旦构建完成并编译PHP,在启用Argon2的AmazonLinux2上安装PHP,php,amazon-ami,libsodium,amazon-linux,argon2-ffi,Php,Amazon Ami,Libsodium,Amazon Linux,Argon2 Ffi,我在启用Argon2进行密码哈希时遇到问题。我是从AmazonLinux2的源代码构建PHP的,但是一旦构建完成并编译PHP,PASSWORD\u ARGON2I常量未定义且算法不可用 我尝试了许多不同的方法来使用不同的库编译PHP,但没有一种方法能提供我所需要的Argon2算法。下面我将列出我采取的一些步骤: 1) 给旗——含钠 使用此标志编译完成,但运行包含函数password\u hash()的测试脚本表明Argon2I不可用 2) 使用标志编译——使用-password-argon2 由
PASSWORD\u ARGON2I
常量未定义且算法不可用
我尝试了许多不同的方法来使用不同的库编译PHP,但没有一种方法能提供我所需要的Argon2算法。下面我将列出我采取的一些步骤:
1) 给旗——含钠
使用此标志编译完成,但运行包含函数password\u hash()
的测试脚本表明Argon2I不可用
2) 使用标志编译——使用-password-argon2
由于下面的错误中缺少库,因此无法编译
checking for Argon2 support... yes
checking for Argon2 library... not found
configure: error: Please ensure the argon2 header and library are installed
由此,我假设我缺少一个标志工作所需的库,所以我已经安装了。再试一次也会得到同样的结果
3) 接下来,我将根据教程中的建议安装更多的依赖项。这些是:
-argon2
-libargon2-0
-libargon2-0-dev
这确实为我提供了cli工具argon2,它可以工作,但是再次编译PHP不会出现相同的错误
此时,我不确定下一步是什么,非常感谢您的帮助。我在运行PHP72的Cloud9 EC2实例上尝试安装LexikJWTAuthenticationBundle时收到一个Argon2i不受支持。错误。
经过大量研究,我想出了一个解决办法
以下是要遵循的步骤
安装LibNade:
$ sudo yum install libsodium-devel
安装后,如果您运行此命令查看PHP模块,您可能会看到列出的libnaid,但它不在那里
$ php -m
该软件包实际上是作为Na钠.so而不是libNa钠.so安装的(这可能是问题的根源?)
要让PHP加载模块,需要一些手动步骤
转到PHP查找已安装模块的目录
$ cd /etc/php.d
创建一个指向Na钠.so包的文件
$ sudo touch libsodium.ini
授予文件读/写权限
$ sudo chmod 666 20-libsodium.ini
在编辑器中打开该文件。我喜欢用vim
$ vi libsodium.ini
单击“i”键进入插入模式并粘贴以下内容:
; Enable sodium extension module
extension=sodium.so
$argon2id$v=19$m=1024,t=2,p=2$dlB2SWdpUEFYZE9RSWNmQg$JGWNTXEomWX1hyM8OfzkRNx5C3zmBu3sqKU1hwohNOU
单击escape键并键入以下内容以保存文件:
:wq!
现在,如果您通过键入PHP-m来查看已安装的PHP模块,您将看到列出的libnail
此时,您应该能够运行抛出Argon2i错误的任何程序
仅供参考,我不是PHP开发人员,也不是AWS专家,但我必须让它工作起来,才能在EC2上部署公司的PHP应用程序。因此,如果您对上述问题有任何疑问,我可能无法提供帮助..但我会尝试;) 我能够解决这个问题。我创建了一个新的AWS Amazon Linux 2实例,并遵循以下步骤:
安装Argon2
sudo -s
git clone https://github.com/P-H-C/phc-winner-argon2.git
cd phc-winner-argon2
make
make test
make install PREFIX=/usr
cp /usr/lib/libargon2.so.1 /lib64/
导航回父目录
cd ..
cd ..
安装PHP7.3.5
wget https://www.php.net/distributions/php-7.3.5.tar.gz
tar -zxvf php-7.3.5.tar.gz
cd php-7.3.5
./configure --with-password-argon2
make
make test
make install
exit
导航回父目录
cd ..
cd ..
检查您的PHP版本
php --version
创建以下PHP脚本(pwd.PHP)
您将收到与以下内容类似的输出:
; Enable sodium extension module
extension=sodium.so
$argon2id$v=19$m=1024,t=2,p=2$dlB2SWdpUEFYZE9RSWNmQg$JGWNTXEomWX1hyM8OfzkRNx5C3zmBu3sqKU1hwohNOU
sudo yum安装-y libargon2 libargon2 devel
这对我有用。你好,罗伯特。你介意看一下解决方案并奖励赏金吗?感谢您配置软件包并再次尝试安装。我认为如果argon2安装正确,它会工作的。他们在那里,很抱歉响应时间太长,但我们不得不转移到其他项目,这一点被搁置了。感谢您发布的说明,它们帮助我进一步使用配置命令,但是它仍然抛出了一个错误<代码>正在检查argon2id\u hash\u raw in-largon2。。。否
配置:错误:libargon2有问题。(a | so)。请验证是否安装了Argon2 header和libaries>=20161029
我明天会花时间看一下(一些粗略的搜索并没有发现太多),但对此的任何指导都将不胜感激。