簡體   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