繁体   English   中英

如何使用 –with-password-argon2 编译 PHP?

[英]How to compile PHP using –with-password-argon2?

我尝试将 PHP 的password_hash()函数与PASSWORD_ARGON2I算法一起使用,但是,我收到以下错误消息:

警告:在第181行的some-file.php 中使用未定义的常量 PASSWORD_ARGON2I - 假定为“PASSWORD_ARGON2I”(这将在 PHP 的未来版本中引发错误)

警告:password_hash() 期望参数 2 是整数,字符串在第192行的some-file.php 中给出

致命错误:未捕获的 PDOException:SQLSTATE[23000]:违反完整性约束:1048 列“密码”在 some-file.php:232 中不能为 null 堆栈跟踪:#0 some-file.php(232):PDOStatement->execute( ) #1 {main} 在第232行的some-file.php 中抛出

我是一个字一个字的跟着函数的官方文档,但是还是遇到了这个错误。

然后我做了一些研究,我发现“PHP 应该使用–with-password-argon2他们指的是这个文件)。

我不知道该怎么做,也找不到任何页面可以指导我完成这些步骤或为我提供更多信息。

散列函数与PASSWORD_DEFAULT完美配合,但这不是我目前需要的。

我不知道,但 OSX 预装了 PHP。 我有一个非常早期的版本,所以我需要升级它以使 Argon2 算法工作。 当我在命令行中通过php --version检查我的版本时,我得到以下结果:

PHP 5.6.30 (cli)(构建时间:2017 年 10 月 29 日 20:30:32)
版权所有 (c) 1997-2016 PHP Group
Zend Engine v2.6.0,版权所有 (c) 1998-2016 Zend Technologies

所以我按照本指南进行操作,但我还必须安装 Argon2 库(未提及)并使用./configure —with-password-argon2 所以这里是根据本指南解决我的问题的步骤:

  1. 从这里下载最新的 PHP 源代码 fe (我使用了这个 .GZ 文件,但要研究一下是否有更新的版本)
  2. 打开命令行
  3. 解压 GZ 文件并在命令行中导航到解压的源代码文件夹
  4. 您将需要 Homebrew,如果您没有,请安装它
  5. 安装本指南中列出的依赖项(在命令行中运行brew install libjpegbrew install pcrebrew install libxml2等)
  6. 还要安装 Argon2 库(这个在之前的指南中没有提到,你可以使用这个指南
  7. 现在在命令行中运行它(仍然是相同的源代码文件夹): ./configure —with-password-argon2
  8. 在命令行中运行make test (耗时过程,同时随意喝啤酒)
  9. 之后运行sudo make install
  10. 我也重新启动了我的电脑,不确定是否有必要,但它有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM