首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何升级PHP扩展( upgrade )

如何升级PHP扩展( upgrade )
EN

Stack Overflow用户
提问于 2018-09-25 00:41:38
回答 1查看 2.8K关注 0票数 2

我使用的是Libsodium PHP,我看到ParagonIE_Sodium_Compat::crypto_pwhash函数在命令行调用时产生不同的结果(具有相同的参数),而在PHP上运行的应用程序中调用时则产生不同的结果。

本教程说:

只需确保在安装PHP时安装相当于php7.2-钠包的操作系统,所有这些步骤都应该由您来处理。

phpinfo();显示:

代码语言:javascript
复制
sodium support  enabled
sodium compiled version 2.0.12
libsodium headers version   1.0.11
libsodium library version   1.0.11

但对于CLI,它显示:

代码语言:javascript
复制
sodium support => enabled
libsodium headers version => 1.0.16
libsodium library version => 1.0.16

我的假设是,不同的could版本可能是导致crypto_pwhash函数产生不同结果的原因。

,那么我如何将1.0.11扩展从1.0.11升级到1.0.16?

我知道crypto_pwhash的CLI版本正在产生我想要的输出,因为它与Libsodium (这里演示小提琴)的输出相匹配。

EN

回答 1

Stack Overflow用户

发布于 2018-09-25 01:05:48

利伯钠libsodium php不是一回事。

为了升级它,您必须从源代码构建libsodium-php

并将其链接到libsodium headers & 1.0.16版本的库中。

php7.2-sodium的维护者显然把它和1.0.11联系在一起-

甚至/etc/php.d/etc/php-cli.d也可能引用不同的模块

如果libsodium-php是与软件包管理器一起安装的,那么最好先卸载它--那么您可以尝试从源代码构建libsodium-php (首先是yum install php-devel re2c):

代码语言:javascript
复制
...
cd libsodium-1.0.16
sudo cp ./src/libsodium/.libs/libsodium.so.23 /usr/lib64/libsodium.so.23
sudo cp ./src/libsodium/.libs/libsodium.so.23.1.0 /usr/lib64/libsodium.so.23.1.0

cd ..
git clone https://github.com/jedisct1/libsodium-php.git
cd libsodium-php
phpize
./configure --help
./configure
make
# sudo make install

sudo cp ./modules/sodium.so /usr/lib64/php/modules/sodium.so
# sudo cp ./modules/sodium.so /usr/lib64/php-zts/modules/sodium.so

sudo echo "extension=sodium.so" > /etc/php-cli.d/sodium.ini
sudo cp /etc/php-cli.d/sodium.ini /etc/php.d/sodium.ini
# sudo cp /etc/php-cli.d/sodium.ini /etc/php-zts.d/sodium.ini
sudo systemctl restart httpd.service

php -r "phpinfo();" | grep sodium
/etc/php-cli.d/sodium.ini,
sodium support => enabled
sodium compiled version => 2.0.12
libsodium headers version => 1.0.16
libsodium library version => 1.0.16

在手动安装CLI & SAPI之后.我找到了用于果胶脂钠的文档,这说明了同样的情况:

如果您得到不同的数字,您将无法访问libna1.0.14中应该包含的一些特性。如果您需要它们,您将需要进行从源代码编译的仪式(如上文所示)。

仍然无法使它在zts (线程安全)中工作;在您的系统上,这些路径应该是fpm (非线程安全)(并且可以将它与默认的PHP链接起来;不需要修补).然而,在添加模块和php-cli时,需要考虑php-fpm.ini

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52489073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档