最近在做Zabbix 4.0连接MySQL 8.0数据库,PHP已经成功升级到7.2.8版本,但访问zabbix web页面报错:
从报错信息中,我们可以看到当前php版本中不支持bccomp()函数,而bccomp()函数属于bcmath扩展,因此可以判断出当前php编译时缺少bcmath扩展模块。
下面我们开始为PHP 7.2.8编译安装bcmath扩展模块。
注意:PHP的linux版本需要手动安装bcmath扩展,在PHP的源码包中默认包含bcmath的安装文件,只需手动安装一次即可。
- 进入PHP源码包目录下的ext/bcmath目录。
[root@ecs-784e ~]# cd /opt/tools/php-7.2.8/ext/bcmath
- 执行phpize命令
[root@ecs-784e bcmath]# /usr/local/php/bin/phpize
- 编译
[root@ecs-784e bcmath]# ./configure --with-php-config=/usr/local/php/bin/php-config
- 执行make && make install
[root@ecs-784e bcmath]# make && make install
- 将安装完成后得到bcmath.so文件所在目录拷贝到php.ini中extension_dir配置的目录中
[root@ecs-784e ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/bcmath.so
-rwxr-xr-x 1 root root 739904 Jul 16 18:50 /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/bcmath.so
[root@ecs-784e ~]# vim /usr/local/php/etc/php.ini
extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718
- 配置文件Dynamic Extensions下添加extension=bcmath.so
[root@ecs-784e ~]# vim /usr/local/php/etc/php.ini
extension=bcmath.so
- 重启php服务
[root@ecs-784e ~]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini # 重新加载配置
[root@ecs-784e ~]# /etc/init.d/php-fpm restart