PHP7.2.6安装sodium扩展

Posted New_Journey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP7.2.6安装sodium扩展相关的知识,希望对你有一定的参考价值。

安装libsodium

libsodium是安装sodium扩展的必须依赖条件,我这里提供两种安装方式,编译和直接yum

编译安装libsodium

wget https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
tar xf libsodium-1.0.17.tar.gz
cd libsodium-1.0.17
./configure
make
make install

 或者直接yum安装

rpm -ivh http://mirrors.whsir.com/centos/whsir-release-centos.noarch.rpm
yum install wlibsodium

 

下载php7.2编译sodium

yum install autoconf
wget https://www.php.net/distributions/php-7.2.17.tar.gz
tar xf php-7.2.17.tar.gz
cd php-7.2.17/ext/sodium
/usr/local/php/bin/phpize

 根据自己phpize的位置来运行即可(不知道phpize在哪的直接find / -name phpize查找),运行完提示下面信息,然后编译

Configuring for:
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718

 

编译扩展模块:

 

./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

注意:此处编译的路径是 /opt/php-7.2.17/ext/sodium

 

 执行完成后会显示扩展模块编译到的目录/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/

 

修改php.ini添加扩展

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/"
extension=sodium.so

 保存退出,重启php

通过phpinfo可看到,扩展已生效

 

 

 

附:如果在编译时报错:

ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor\':
/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open\'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

 解决方法:

使用:make ZEND_EXTRA_LIBS=\'-liconv\' 

 

或者: vim Makefile

添加:-lcrypt

 

 然后重新编译

 

 

以上是关于PHP7.2.6安装sodium扩展的主要内容,如果未能解决你的问题,请参考以下文章

PHP安装扩展补充说明

PHP的Sodium加密扩展函数了解

PHP的Sodium加密扩展函数了解

Docker PHP 安装扩展汇总

php7.2.6??????????????????

为啥 node-sodium 包不起作用