Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在启用Argon2的AmazonLinux2上安装PHP_Php_Amazon Ami_Libsodium_Amazon Linux_Argon2 Ffi - Fatal编程技术网

在启用Argon2的AmazonLinux2上安装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 由

我在启用Argon2进行密码哈希时遇到问题。我是从AmazonLinux2的源代码构建PHP的,但是一旦构建完成并编译PHP,
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
我明天会花时间看一下(一些粗略的搜索并没有发现太多),但对此的任何指导都将不胜感激。