0

(明確にするために編集 - 受け入れられた回答に転載)

Libsodium は PHP 7 用に準備されました。これにより、名前空間が削除され、メソッド用のsodium_ と定数用の SODIUM_ のプレフィックスが追加されました。また、バージョン メソッドが削除されました。

この github ページには、すべての新しい関数と定数が記載されており、プロジェクトは \Sodium 名前空間との下位互換性を提供します: https://github.com/Firehed/sodium/blob/master/src/we_cant_have_nice_things.php

レシピ: PHP 7 と AWS AMI に Libsodium をインストールする

# PHP 7.0 Libsodium install AWS AMI
yum install -y php7-pear re2c php70-devel
yum groupinstall -y "Development Tools"

pecl7 install libsodium

vi /etc/php-7.0.d/20-libsodium.ini
    ; Enable libsodium extension module
    extension=sodium.so

service httpd restart

ナトリウムがインストールされていることを確認するためのコマンドラインテスト

php7 --info | grep sodium

パスワード ハッシュの呼び出しパターンを確認するための php 関数のテスト

<?php
$password = "hello";
$hash_str = sodium_crypto_pwhash_str(
    $password,
    \SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
    \SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);
var_dump($password, $hash_str);

助けてくれた@GracefulRestartに感謝します。

4

2 に答える 2

1

これがこのレシピに対する私の解決策です。

wget -c https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz 
tar -xvf libsodium-1.0.18.tar.gz  
cd libsodium-1.0.18 
./configure
make && make check
make install
sudo pecl7 install -f libsodium

pecl7 は、php.ini ファイルをインストールして変更し、php.ini に以下を含める必要があります。

extension="sodium.so"

Elastic Beanstalk で PHP を実行している場合は、次のファイル ./ebextentions/script.config :

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/pre/001_libsodium.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      wget -c https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz && tar -xvf libsodium-1.0.18.tar.gz &&  cd libsodium-1.0.18 && ./configure && make && make check && sudo make install && sudo pecl7 install -f libsodium
于 2019-06-24T11:59:51.473 に答える