docker 微擎中安装加密模块mcrypt

这里是下载包,php71d 是为低版本准备的,高版本的直接用php71u.

我的docker是php 7.34. 安装mcrypt 一开始按网上教程,装php71d中的三个模块,三个步骤。没成功,最后一个模块卡住了。

再搜索发现: mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl。

于是,在 php 官网下载 mcrypt 包,php 扩展官网。就是php71u中的mcrypt-1.0.2.tgz。

执行以下步:

tar xf mcrypt-1.0.2.tgz
cd mcrypt-1.0.2
phpize
./configure --with-php-config=/usr/local/bin/php-config  && make && make install

运行phpize,可能遇到 问题:

Cannot find config.m4.
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module

解决方案如下:

find / -name openssl  # 找到openssl路径
cd /usr/src/php/ext/openssl #进入
cp ./config0.m4 ./config.m4  #复制

再运行就OK:

phpize

Configuring for:

PHP Api Version: 20180731

Zend Module Api No: 20180731

Zend Extension Api No: 320180731

 插曲完毕,继续刚才话题。

找到 php-config路径,不同机器 可能不一样

 find / -name php-config

/usr/local/bin/php-config

bash-4.4# ./configure --with-php-config=/usr/local/bin/php-config  && make && make install

注意和上面找到的路径一样哦。出现 下面类似的话,代表安装成功。

cp ./.libs/mcrypt.so /var/www/html/web/mcrypt/php71u/mcrypt-1.0.2/modules/mcrypt.so

cp ./.libs/mcrypt.lai /var/www/html/web/mcrypt/php71u/mcrypt-1.0.2/modules/mcrypt.la

PATH="$PATH:/sbin" ldconfig -n /var/www/html/web/mcrypt/php71u/mcrypt-1.0.2/modules

----------------------------------------------------------------------

LBuild complete.

Don't forget to run 'make test'.

 

Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20180731/

列一列,都是soso的文件:

ls /usr/local/lib/php/extensions/no-debug-non-zts-20180731/

dom.so intl.so opcache.so pdo_sqlite.so sodium.so

exif.so json.so openssl.so pgsql.so xdebug.so

gd.so mcrypt.so pdo_mysql.so redis.so xsl.so/

iconv.so mysqli.so pdo_pgsql.so soap.so zip.so

最后一步,在php.ini中添加扩展:

extension=mcrypt.so

 

你可能感兴趣的:(docker,PHP)