Ubuntu 06.04执行composer update更新Laravel时遇mcrypt.so加载警告求助
解决Ubuntu 6.04下Composer Update时mcrypt.so加载失败的警告
这个警告的核心原因是PHP无法找到mcrypt扩展的动态链接库文件,而且从错误路径/usr/lib/php/20170718/来看,你的PHP配置里的扩展目录和实际系统中的PHP版本不匹配(Ubuntu 6.04默认搭载的是PHP 5.x,而20170718是PHP 7.2+的扩展目录标识)。下面是一步步的解决方法:
1. 先查找系统中是否存在mcrypt.so文件
首先用命令搜索系统里的mcrypt.so:
find / -name mcrypt.so 2>/dev/null
如果搜索到结果(比如/usr/lib/php5/20060613/mcrypt.so),直接跳到步骤3;如果没有任何输出,说明你还没安装mcrypt扩展,先执行步骤2。
2. 安装mcrypt扩展(针对Ubuntu 6.04)
Ubuntu 6.04已经停止官方支持多年,默认软件源已经失效,需要先替换为旧版本源:
- 编辑源列表文件:
sudo nano /etc/apt/sources.list
- 将文件中所有
archive.ubuntu.com和security.ubuntu.com替换为old-releases.ubuntu.com - 保存退出后更新源:
sudo apt-get update
- 安装PHP 5的mcrypt扩展:
sudo apt-get install php5-mcrypt
3. 修正PHP配置中的扩展路径
编辑你的PHP配置文件(通常在/etc/php5/apache2/php.ini或/etc/php5/cli/php.ini,取决于你用的是Web还是CLI模式):
- 找到类似
extension=mcrypt.so的行,如果前面有;就去掉注释 - 检查
extension_dir配置,确保它指向你的PHP版本对应的扩展目录(比如Ubuntu 6.04下PHP 5的扩展目录通常是/usr/lib/php5/20060613/) - 如果直接指定路径更稳妥,可以把
extension=mcrypt.so改成:
extension=/usr/lib/php5/20060613/mcrypt.so
(这里的路径替换成你步骤1中找到的实际路径)
4. 重启PHP服务并验证
- 如果用的是Apache,重启服务:
sudo /etc/init.d/apache2 restart
- 如果用的是CLI模式,直接重新运行
composer update即可
最后提醒一句:Ubuntu 6.04已经停止安全更新超过15年了,不仅软件兼容性差,还存在严重的安全漏洞,建议尽快升级到受支持的新版本系统。
内容的提问来源于stack exchange,提问作者Fil
相关产品推荐
相关产品推荐

