[英]Installing PHP on Amazon Linux 2 with Argon2 Enabled
我在為密碼散列啟用 Argon2 時遇到問題。 我正在從 Amazon Linux 2 的源代碼構建 PHP,但是一旦構建完成並編譯了 PHP, PASSWORD_ARGON2I
常量未定義並且算法不可用。
我嘗試了多種不同的方法來使用不同的庫編譯 PHP,但沒有一種方法能提供我需要的 Argon2 算法。 下面我將列出我采取的一些步驟:
1) 給標志--with-sodium
使用此標志編譯完成,但運行包含函數password_hash()
的測試腳本顯示 Argon2I 不可用。
2) 編譯標志--with-password-argon2
由於缺少庫,編譯失敗,可以在下面的錯誤中看到。
checking for Argon2 support... yes
checking for Argon2 library... not found
configure: error: Please ensure the argon2 header and library are installed
由此,我假設我缺少該標志工作所需的庫,因此我安裝了Libsodium 。 再次嘗試具有相同的結果。
3) 接下來,我根據教程的推薦安裝更多依賴項。 它們是: - argon2 - libargon2-0 - libargon2-0-dev
這確實為我提供了可以工作的 cli 工具argon2
,但是再次編譯 PHP 不會出現相同的錯誤。
目前我不確定我的下一步是什么,任何幫助將不勝感激。
我在運行 PHP72 的 Cloud9 EC2 實例上嘗試安裝 LexikJWTAuthenticationBundle 時收到Argon2i not supported..錯誤。 經過大量研究,我想出了一個解決方案。
以下是要遵循的步驟。
安裝 libsodium:
$ sudo yum install libsodium-devel
安裝后,如果您運行此命令來查看您的 PHP 模塊,您會期望看到列出的 libsodium,但它不在那里。
$ php -m
該包實際上安裝為 sodium.so 而不是 libsodium.so(也許這是問題的根源?)要讓 PHP 加載模塊,需要一些手動步驟。
轉到 PHP 查找已安裝模塊的目錄。
$ cd /etc/php.d
創建一個指向 sodium.so 包的文件。
$ sudo touch libsodium.ini
授予文件讀/寫權限。
$ sudo chmod 666 20-libsodium.ini
在編輯器中打開文件。 我喜歡用 vim。
$ vi libsodium.ini
單擊“i”鍵進入插入模式並粘貼以下內容:
; Enable sodium extension module
extension=sodium.so
通過單擊轉義鍵並鍵入以下內容來保存文件:
:wq!
現在,如果您通過鍵入 php -m 查看已安裝的 PHP 模塊,您將看到列出了 libsodium。
在這一點上,您應該能夠運行任何引發 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 ..
安裝 PHP 7.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 ..
檢查您的 PHP 版本
php --version
創建以下 PHP 腳本 (pwd.php)。
<?php
error_reporting(E_ALL);
$hash = \password_hash('password', PASSWORD_ARGON2ID);
echo "$hash\n";
?>
執行 PHP 腳本以測試 Argon2 功能
php pwd.php
您將收到類似於以下內容的輸出:
$argon2id$v=19$m=1024,t=2,p=2$dlB2SWdpUEFYZE9RSWNmQg$JGWNTXEomWX1hyM8OfzkRNx5C3zmBu3sqKU1hwohNOU
sudo yum install -y libargon2 libargon2-devel
這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.