【问题标题】:How to compile PHP using –with-password-argon2?如何使用 –with-password-argon2 编译 PHP?
【发布时间】:2018-07-17 14:24:27
【问题描述】:

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

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

警告:password_hash() 期望参数 2 为整数,字符串在 some-file.php192

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

行的 some-file.php 中抛出

我逐字跟踪the official documentation of the function,但仍然遇到此错误。

然后我做了一些研究,发现"PHP should be compiled using –with-password-argon2" (where they refer to this file)。

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

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

【问题讨论】:

  • php编译与你的问题有什么共同点?
  • 您需要提供一些有关您的环境的信息。您下载 PHP 源代码并使用 configure/make 和 gcc 之类的东西将 C 编译为可执行文件。 --with-password-argon2 将是一个配置选项。如果您以前从未编译过某些东西,您可能会不知所措。
  • 是的,据我所知,我以前从未编译过。所以我并没有真正理解这一切,这就是我寻求帮助的原因。你有什么建议从哪里开始阅读它? @德文
  • 尝试谷歌搜索compiling php from source。那将是你最好的选择。这并不复杂,但由于您没有提供任何环境细节,我不能告诉您我推荐它。如果您从系统包安装 PHP,您可能很难让自己编译的 PHP 版本在您的 Web 服务器上正常运行。
  • 我认为它是随 XAMPP 7.2.2.0 自动安装的,我希望这是您要求@Devon 提供的环境细节

标签: php password-hash


【解决方案1】:

我不知道,但 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。所以这里是基于this guide解决我的问题的步骤:

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

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 2016-06-04
    • 2016-10-10
    • 2020-12-21
    • 2023-03-03
    • 2017-11-29
    • 2020-10-07
    • 2014-07-17
    相关资源
    最近更新 更多