最近在开发微信公众号,在微信开发文档提供的接入指南的php示例代码有关对消息加码解码中用到mcrypt的函数,服务器上的没有安装php mcrypt扩展,导致报错。
因为在php7.0以后的版本中,mcrypt不在与php捆绑,无法用sudo apt-get install php7.4-mcrypt来安装这个扩展了。
因此,需要用到另外的办法。
安装mcrypt扩展之前需要安装其他一些辅助扩展:
sudo apt install php-pear php-dev libmcrypt-dev
安装php-pear是为了能用‘pecl’命令,安装php-dev是为了能用‘phpize’命令,否则会报错。
等前面的安装完成后,运行命令
sudo pecl install mcrypt
当遇到提示
libmcrypt prefix? [autodetect] :
请按Enter自动检测。
当安装成功后,在最后会看到如下截图内容:
因此,需要在php.ini里添加extension=mcrypt.so
每个人服务器的php.ini位置可能不一样,我的在路径/etc/php/7.4/apache2下,cd到此目录下,通过“vi php.ini”打开配置文件,找到extension部分,把“extension=mcrypt.so”加上去。
然后,重启Apache2.
/etc/init.d/apache2 restart
可以通过在php文件中通过
phpinfo();
函数来在浏览器查看php信息,搜索“mcrypt”,如果有就可以了。