Ubuntu 16.04下无法安装php7.1-bcmath及Composer依赖报错求助
解决PHP 7.1-bcmath扩展安装失败的问题(Ubuntu 16.04 + Symfony 4)
嘿,我来帮你捋清楚这个问题——你在安装Sonata Notification Bundle时碰到bcmath扩展缺失,接着尝试安装php7.1-bcmath却失败,大概率是Ubuntu 16.04的软件源配置或者PHP版本源的问题,下面给你拆解原因和对应的解决办法:
可能导致安装失败的原因
- 默认系统源不包含PHP 7.1的官方包:Ubuntu 16.04自带的软件源里,PHP版本偏旧,默认没有PHP 7.1的相关扩展包,所以apt找不到php7.1-bcmath。
- APT包缓存过期:你的系统包缓存太久没更新,导致无法识别到新增源里的php7.1-bcmath包。
- PHP非官方渠道安装导致不兼容:如果你的PHP 7.1是通过源码编译或者第三方非PPA渠道安装的,和APT仓库里的包版本不匹配,也会安装失败。
一步步解决问题
1. 添加官方PHP PPA源
Ubuntu 16.04要装PHP 7.1的扩展,得先添加Ondřej Surý维护的PHP PPA源(这是社区公认靠谱的PHP源,覆盖多个PHP版本):
sudo add-apt-repository ppa:ondrej/php sudo apt-get update
2. 更新APT缓存
确保系统能获取到最新的包信息:
sudo apt-get update
3. 重新安装php7.1-bcmath
现在再执行安装命令,应该就能找到包了:
sudo apt-get install php7.1-bcmath
4. 验证安装结果
安装完成后,记得重启你的Web服务(比如Apache或Nginx),如果用的是PHP-FPM,还要重启对应的服务:
# 重启Apache sudo service apache2 restart # 或者重启PHP 7.1-FPM sudo service php7.1-fpm restart
然后通过命令确认扩展是否生效:
php -m | grep bcmath
如果输出bcmath,就说明安装成功了,之后再跑composer require sonata-project/notification-bundle应该就能顺利完成了。
内容的提问来源于stack exchange,提问作者Sirius
相关产品推荐
相关产品推荐

