Php 7 AWS EC2标准AWS AMI与PHP7.0-安装

Php 7 AWS EC2标准AWS AMI与PHP7.0-安装,php-7,libsodium,Php 7,Libsodium,(为清晰起见进行了编辑-纳入接受答案) LibNade已经为PHP7做了准备。在这样做的过程中,删除了名称空间,并添加了用于方法的前缀Na钠和用于常量的前缀Na钠。此外,版本方法也被删除 此github页面记录了所有新函数和常量,项目提供了与\n命名空间的向后兼容性: 诀窍:在PHP7和AWS AMI上安装LibNade # PHP 7.0 Libsodium install AWS AMI yum install -y php7-pear re2c php70-devel yum groupi

(为清晰起见进行了编辑-纳入接受答案)

LibNade已经为PHP7做了准备。在这样做的过程中,删除了名称空间,并添加了用于方法的前缀Na钠和用于常量的前缀Na钠。此外,版本方法也被删除

此github页面记录了所有新函数和常量,项目提供了与\n命名空间的向后兼容性:

诀窍:在PHP7和AWS AMI上安装LibNade

# 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);

我在这里看到了几个问题,第一个问题是您的测试文件似乎没有功能

在PHP7中使用LibNade运行测试代码会返回以下错误:

PHP Fatal error:  Uncaught Error: Call to undefined function Sodium\\library_version_major() 
如果要检查版本,可以更容易地从phpinfo()函数中搜索数据:

<?php phpinfo(); ?>
# or from CLI
php7 --info |grep sodium
如果您的发行版的YUM存储库提供php7-libnail包,那么这将是一个更小的配方


希望这有帮助

我发现这里有几个问题,第一个问题是您的测试文件似乎没有功能

在PHP7中使用LibNade运行测试代码会返回以下错误:

PHP Fatal error:  Uncaught Error: Call to undefined function Sodium\\library_version_major() 
如果要检查版本,可以更容易地从phpinfo()函数中搜索数据:

<?php phpinfo(); ?>
# or from CLI
php7 --info |grep sodium
如果您的发行版的YUM存储库提供php7-libnail包,那么这将是一个更小的配方


希望这能有所帮助

以下是我对这个配方的解决方案

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

这是我对这个食谱的解答

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

如果执行
phpinfio()
,您是否在模块列表中看到libnaid?如果执行
phpinfio(),您是否在模块列表中看到libnaid
?只有在解析了附加ini文件的情况下,才会命中钠:/etc/php-7.0.d/20-libnasdinal.inithanks。我同意我的食谱是一个大杂烩,因为坦率地说,这两种方法都不起作用,我尝试过几种不同的方法。我希望找到一个清晰的配方,可以重复使用。你手头有吗?我对我的答案进行了编辑,根据你原来的帖子更新了配方。请记住使用一种更有效的测试方法,因为您最初发布的测试方法似乎并没有在一个php libnail处于工作状态的系统上运行。它似乎来自一本为旧版本的LibNadium编写的书,您正在安装的新版本不再具有这些函数,因此出现了错误“调用未定义的函数Nadium…”我非常确定您的原始配方确实让php LibNadium工作,您只安装了两次模块。工作得非常出色。编辑问题,从一开始就清楚地解释解决方案。还添加了一个指向转换github项目的链接,该项目显示所有重命名的方法和常量。非常感谢。谢谢我同意我的食谱是一个大杂烩,因为坦率地说,这两种方法都不起作用,我尝试过几种不同的方法。我希望找到一个清晰的配方,可以重复使用。你手头有吗?我对我的答案进行了编辑,根据你原来的帖子更新了配方。请记住使用一种更有效的测试方法,因为您最初发布的测试方法似乎并没有在一个php libnail处于工作状态的系统上运行。它似乎来自一本为旧版本的LibNadium编写的书,您正在安装的新版本不再具有这些函数,因此出现了错误“调用未定义的函数Nadium…”我非常确定您的原始配方确实让php LibNadium工作,您只安装了两次模块。工作得非常出色。编辑问题,从一开始就清楚地解释解决方案。还添加了一个指向转换github项目的链接,该项目显示所有重命名的方法和常量。非常感谢。