我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔想实验一下最新版本的某知识分享源码,但是居然被提示,需要开启mcrypt扩展。phpstudy里面没带这个扩展,宝塔面板里面php72也默认没有这个扩展。没辙,只好选择手工编译这个mcrypt扩展了。名字挺眼熟的,估计在以前的php里面,是标配吧。

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - php-mcrypt
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-1)

顺便ps一下:php7.2.4php源码的ext目录里面,也没有这个mcrypt扩展,估计也许是被世界都遗忘了吧。本文的测试环境是:centos7.5 + 宝塔面板 + php724

下载扩展源码

网上的教程里面,都是说要到https://sourceforge.net/下载三个不同的源码:

  • Libmcrypt
  • mhash
  • mcrypt

不过,苏南大叔没有这么操作,仅仅是在pecl网站这里下载的mcrypt,也编译成功了。可能是苏南大叔的centos服务器上面已经安装了相关类库了吧。下载地址是:

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 000
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-2)

pecl网站上面的mcryptsourceforge上的mcrypt,应该是两个东西。sourceforge上的mcrypt,应该是本尊。pecl网站上面的mcrypt,应该只是个dll包装。

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 001
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-3)

编译源码

苏南大叔cd到上述源码根目录下面后,因为目标php环境是宝塔面板的php72,所以,下面的命令中,会有所体现相关路径。请注意替换相关路径到您真实的php路径。如果没有正确cdmcrypt-1.0.1源码根目录的话,就可能会看到如下错误提示:

Cannot find config.m4.

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 002
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-4)

/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config
make && make install

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 003
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-5)

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 004
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-6)

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 005
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-7)

编译完成后,我们就可以在对应扩展目录下面,看到编译好的mcrypt.so文件了。

cd /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/
ls

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 006
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-8)

启用mcrypt.so

php.ini中启用mcrypt.so即可。注意,编译好之后,需要重启php-fpm才能生效。

vi /www/server/php/72/etc/php.ini
extension=mcrypt.so

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 007
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-9)

最终效果

我们在phpinfo里面,看到的截图,如下图所示:mcrypt版本号为2.5.8,这个版本号应该指的是libmcrypt的版本号。

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - 099
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-10)

相关连接

  • 《centos,php71如何编译安装tidy扩展》

https://newsn.net/say/centos-php71-tidy.html

  • 《centos,php72如何编译安装yaml扩展》

https://newsn.net/say/centos-php72-yaml.html

注意事项

190616更新:可能php72是最后一个支持mcrypt.so的版本,php73下,即使编译成功,也依然没能生效。

苏南大叔:centos 环境,php72 如何编译安装 mcrypt 扩展 - php73-mcrypt
centos 环境,php72 如何编译安装 mcrypt 扩展(图11-11)

小结

php的扩展编译过程,基本上套路都差不多,个别有所差异。只要找到对的源码,以及相关的关联lib扩展,开启相关扩展,还不是太大问题。

苏南大叔提示您:更多php相关文章,请点击这里查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    centos