Kubuntu 18.04(PHP7.2)安装/激活ext-mcrypt扩展求助
解决Kubuntu 18.04(PHP7.2)下ext-mcrypt扩展缺失问题
首先得说清楚:PHP 7.2 开始官方已经移除了 mcrypt 扩展,这就是你找不到php-mcrypt或php7.2-mcrypt包的核心原因——它不再是系统源里的预编译包,得通过PECL编译安装。而PHP7.1及更早版本中,mcrypt还是核心扩展的一部分,所以可以直接用apt安装对应版本的包,这就是两个版本的关键差异。
下面是具体的解决步骤:
第一步:安装编译依赖
要从PECL编译mcrypt,得先配齐必要的开发工具和库:sudo apt-get update && sudo apt-get install php7.2-dev libmcrypt-dev gcc make第二步:通过PECL安装适配版本的mcrypt
注意要指定兼容PHP7.2的稳定版本(1.0.1是经过验证适配7.2的版本):sudo pecl install mcrypt-1.0.1安装时如果弹出
libmcrypt prefix? [autodetect]的提示,直接按回车让系统自动检测就行。第三步:手动创建配置并启用扩展
系统默认没有mcrypt的配置文件,所以我们得手动补上:- 创建ini配置文件:
sudo bash -c "echo extension=mcrypt.so > /etc/php/7.2/mods-available/mcrypt.ini" - 启用这个扩展:
sudo phpenmod mcrypt
- 创建ini配置文件:
第四步:验证安装并重启服务
先检查扩展是否成功加载:php -m | grep mcrypt如果输出
mcrypt,说明加载成功。接下来根据你的web环境重启对应服务:- 用Apache的话:
sudo systemctl restart apache2 - 用Nginx+PHP-FPM的话:
sudo systemctl restart php7.2-fpm
- 用Apache的话:
完成这些步骤后,再执行composer install应该就能正常运行了。
额外提一句:官方其实早就标记mcrypt为废弃,推荐用OpenSSL或Sodium扩展替代它。如果你的项目有条件升级,建议逐步替换掉mcrypt的依赖,这样后续PHP版本升级也不会再碰到类似的问题。
内容的提问来源于stack exchange,提问作者Calamity Jane
相关产品推荐
相关产品推荐

