VPS侦探论坛

 找回密码
 注册
查看: 4718|回复: 10

安装php-sodium错误Debian10.9

[复制链接]
发表于 2021-6-5 18:30:12 | 显示全部楼层 |阅读模式

root@debian:~# pecl install libsodium
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-upd                  ate pecl.php.net" to update
PHP Fatal error:  Uncaught Error: Call to undefined function popen() in /usr/loc                  al/php/lib/php/OS/Guess.php:254
Stack trace:
#0 /usr/local/php/lib/php/OS/Guess.php(152): OS_Guess->_detectGlibcVersion()
#1 /usr/local/php/lib/php/OS/Guess.php(107): OS_Guess->parseSignature()
#2 /usr/local/php/lib/php/PEAR/Dependency2.php(109): OS_Guess->__construct()
#3 /usr/local/php/lib/php/PEAR/Downloader.php(277): PEAR_Dependency2->__construc                  t()
#4 /usr/local/php/lib/php/PEAR/Downloader.php(556): PEAR_Downloader->getDependen                  cy2Object()
#5 /usr/local/php/lib/php/PEAR/Downloader.php(458): PEAR_Downloader->analyzeDepe                  ndencies()
#6 /usr/local/php/lib/php/PEAR/Command/Install.php(671): PEAR_Downloader->downlo                  ad()
#7 /usr/local/php/lib/php/PEAR/Command/Common.php(270): PEAR_Command_Install->do                  Install()
#8 /usr/local/php/lib/php/pearcmd.php(317): PEAR_Command_Common->run()
#9 /usr/local/php/lib/php/peclcmd.php(32): require_once('...')
#10 {main}
  thrown in /usr/local/php/lib/php/OS/Guess.php on line 254
root@debian:~# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm [05-Jun-2021 18:08:33] NOTICE: PHP message: PHP Warning:  PHP S                  tartup: Unable to load dynamic library 'sodium' (tried: /usr/local/php/lib/php/e                  xtensions/no-debug-non-zts-20200930/sodium (/usr/local/php/lib/php/extensions/no                  -debug-non-zts-20200930/sodium: cannot open shared object file: No such file or                   directory), /usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/sodium.s                  o (/usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/sodium.so: cannot                   open shared object file: No such file or directory)) in Unknown on line 0
done
root@debian:~# ^C

安装不了, apt-get install libsodium-dev,Debian10.9
现在微信支付API的V3版支付接口都需要sodium,建议默认安装上

美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2021-6-5 18:52:32 | 显示全部楼层



root@debian:~# apt-get install libsodium-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列【新】软件包将被安装:
  libsodium-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级                                    。
需要下载 176 kB 的归档。
解压缩后会消耗 796 kB 的额外空间。
获取:1 http://deb.debian.org/debian buster/main amd64 libsodium-dev amd64 1.0.17                                    -1 [176 kB]
已下载 176 kB,耗时 1秒 (168 kB/s)
正在选中未选择的软件包 libsodium-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 113631 个文件和目录。)
准备解压 .../libsodium-dev_1.0.17-1_amd64.deb  ...
正在解压 libsodium-dev:amd64 (1.0.17-1) ...
正在设置 libsodium-dev:amd64 (1.0.17-1) ...
root@debian:~# pecl install libsodium
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-upd                                    ate pecl.php.net" to update
PHP Fatal error:  Uncaught Error: Call to undefined function popen() in /usr/loc                                    al/php/lib/php/OS/Guess.php:254
Stack trace:
#0 /usr/local/php/lib/php/OS/Guess.php(152): OS_Guess->_detectGlibcVersion()
#1 /usr/local/php/lib/php/OS/Guess.php(107): OS_Guess->parseSignature()
#2 /usr/local/php/lib/php/PEAR/Dependency2.php(109): OS_Guess->__construct()
#3 /usr/local/php/lib/php/PEAR/Downloader.php(277): PEAR_Dependency2->__construc                                    t()
#4 /usr/local/php/lib/php/PEAR/Downloader.php(556): PEAR_Downloader->getDependen                                    cy2Object()
#5 /usr/local/php/lib/php/PEAR/Downloader.php(458): PEAR_Downloader->analyzeDepe                                    ndencies()
#6 /usr/local/php/lib/php/PEAR/Command/Install.php(671): PEAR_Downloader->downlo                                    ad()
#7 /usr/local/php/lib/php/PEAR/Command/Common.php(270): PEAR_Command_Install->do                                    Install()
#8 /usr/local/php/lib/php/pearcmd.php(317): PEAR_Command_Common->run()
#9 /usr/local/php/lib/php/peclcmd.php(32): require_once('...')
#10 {main}
  thrown in /usr/local/php/lib/php/OS/Guess.php on line 254
root@debian:~# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm [05-Jun-2021 18:08:33] NOTICE: PHP message: PHP Warning:  PHP S                                    tartup: Unable to load dynamic library 'sodium' (tried: /usr/local/php/lib/php/e                                    xtensions/no-debug-non-zts-20200930/sodium (/usr/local/php/lib/php/extensions/no                                    -debug-non-zts-20200930/sodium: cannot open shared object file: No such file or                                     directory), /usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/sodium.s                                    o (/usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/sodium.so: cannot                                     open shared object file: No such file or directory)) in Unknown on line 0
done
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2021-6-5 22:27:36 | 显示全部楼层

wget http://pecl.php.net/get/libsodium-2.0.23.tgz
单独下载2.2.23的安装好用了,php8.0.6,还是得手工
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2021-6-6 11:01:04 | 显示全部楼层



erer 发表于 2021-6-5 18:52
root@debian:~# apt-get install libsodium-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树

popen、readlink 函数从php禁用函数里删除就可以正常使用pecl命令安装了

apt-get install libsodium-dev 正常安装,没有报错
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2021-6-6 11:16:59 | 显示全部楼层

apt-get install libsodium-dev 自动安装的是1.0.17
我的php8.0.6

军哥运维代购:http://shop63846532.taobao.com/

发表于 2021-6-6 19:59:42 | 显示全部楼层

erer 发表于 2021-6-6 11:16
apt-get install libsodium-dev 自动安装的是1.0.17
我的php8.0.6

每个debian版本的各种依赖包版本都不一样
debian 10对应的libsodium-dev版本是1.0.17一点问题都没有
发表于 2021-6-25 16:50:59 | 显示全部楼层

licess 发表于 2021-6-6 19:59
每个debian版本的各种依赖包版本都不一样
debian 10对应的libsodium-dev版本是1.0.17一点问题都没有 ...

假如说现在我需要安装curl ,但是我现在怎么知道 curl 需要那些依赖???
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2021-6-25 21:23:12 | 显示全部楼层

sunny123456 发表于 2021-6-25 16:50
假如说现在我需要安装curl ,但是我现在怎么知道 curl 需要那些依赖???

不管是系统的curl还是php-curl默认都自带,php-curl这都是最最基本的模块
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2021-6-26 10:31:45 | 显示全部楼层

licess 发表于 2021-6-25 21:23
不管是系统的curl还是php-curl默认都自带,php-curl这都是最最基本的模块

我举个例子,比方说我现在安装某个 扩展,但是我不知道还需要安装那些他的依赖项,
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2021-6-26 17:35:46 | 显示全部楼层



sunny123456 发表于 2021-6-26 10:31
我举个例子,比方说我现在安装某个 扩展,但是我不知道还需要安装那些他的依赖项, ...

php官网每个模块/扩展的文档里都有具体说明
发表于 2021-6-28 11:17:05 | 显示全部楼层

licess 发表于 2021-6-26 17:35
php官网每个模块/扩展的文档里都有具体说明

好的,我去看下,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-5-8 04:14 , Processed in 0.030613 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表