当前位置:AIGC资讯 > 数据采集 > 正文

Call to undefined function bcmath()的解决方法

乐意黎的ECS主机环境,Centos7.2 + PHP7

由于使用了bcdiv()函数,运行时总在抛错。

Fatal error: Call to undefined function bcmath() in /usr/loca/apache/htdocs/... on line 4

一查得知: php configure 时忘记加了 --enable-bcmath 参数.

只能用下面方法来进行添加了

Centos 7.2 下用phpize给PHP动态添加扩展

接触Centos主机没多长时间, 总结这久,安装php时参考了别人的配置,编译php时没有开启若干扩展(很大的一个坑啊).

在实际使用中抛错了,再想添加扩展,但是因为安装php后又装了其它及设置了一些其它参数,不想卸载后再重装。

这下就需要用到phpize来帮忙了。

比如此刻我想增加bcmath扩展的支持,这是一个支持大整数计算的扩展。

由于windows系统是自带而且内置,linux“本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用”(引号内是手册中的话)

我安装的为php7.0.12, 

安装源文件路径在 /usr/local/src/php7.0.12

php的安装后路径 /usr/local/php/

进入源文件路径 :cd /usr/local/src/php7.0.12/ext/bcmath目录,

然后执行输入 /usr/local/php/bin/phpize,然后再执行./configure命令即可.

#cd /usr/local/src/php7.0.12/ext/bcmath
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config

注意: 若报

Cannot find config.m4.  

这个错的原因是,在执行phpize时,一定要在需要扩展编译的PHP模块目录中进行/usr/local/php/bin/phpize 才行。

回车后,如果没有报错,则make & make install ,然后它告诉你一个目录.

#make & make install

( 像网上说的: 把该目录下的bcmath.so拷贝到php.ini中的extension_dir指向的目录中, 我没有进行这一)

修改php.ini,在最后添加一句

extension=bcmath.so

ECS -> :wq 保存退出。

重启Apache 服务

apachectl restart ,

再新建页面test.php, 内容为:  <?php phpinfo(); ?> 

测试成功.

表明bcmath扩展已经成功安装!

版权声明:本文为 {aerchi/乐意黎} 原创文章,未经允许不得镜像、采集博客内容,如有

更新时间 2023-11-08