ThinkPHP出现Call to undefined function bcadd()怎么解决

2019-10-03 作者:计算机教程   |   浏览(104)

昨天一个网友在WDCP面板环境中安装ThinkPHP程序的时候出现报错,有提示"Call to undefined function bcadd()"这样提示。根据搜索结果也有看到类似的案例发生,主要是因为ThinkPHP框架程序需要用到PHP bcmath扩展,而在默认我们安装或者编译PHP的时候没有一并编译进来。

第一、安装、升级且确定PHP版本

 

如果我们采用的是WDCP默认版本,官方默认包是PHP5.2,一般我们肯定是需要升级PHP版本的,毕竟PHP5.2的处理信息能力还是比较慢的,虽然不要求我们升级到PHP7,毕竟支持7版本的程序兼容性还需要一段时间。

我们有两个方法解决这个问题,一来重新编译PHP,把bcmath 重新添加编译,只是这个过程需要一些时间,或者我们下载PHP源码到服务器中,然后类似前天安装soap扩展一样的单独编译enable启动。这里,老蒋选择后者。

这里如果我们需要升级WDCP面板PHP环境,可以参考的文章:

 

鉴于这位网友的实际环境,我在本地测试机中安装默认WDCP面板之后,升级至PHP5.3.17版本。

第一、选择PHP版本进入目录

wget http://soft.itbulu.com/wdcp/php_up53.sh
sh php_up53.sh

 

 

这里我看到这位网友使用的是PHP5.3.17而且在当初是从WDCP面板5.2升级的,根目录有的安装包没有删除,所以我就不要去PHP官方网站删除,直接cd进入/ext/bcmath目录。

这个升级过程可能稍微需要一点时间,总之我们等待就可以。

 

 

第二、编译启动bcmath过程

图片 1

 

 

 代码如下

第二、安装soap扩展过程

/usr/local/php/bin/phpize

 

./configure --with-php-config=/www/wdlinux/php/bin/php-config --enable-bcmath

这里我们基于上面的第一步升级到PHP版本之后,可以看到根目录有php-5.3.17文件夹。

make && make install

cd php-5.3.17

 

cd ext/soap

执行完毕之后,我们可以看到 :

 

 

进入soap目录,这里需要注意的问题是,如果我们是PHP其他版本,也就进入对应的PHP安装目录,如果我们不小心将PHP安装包删除,那也不要紧,直接到PHP官方网站下载对应的包然后进来。

 代码如下

 代码如下

/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/

/www/wdlinux/php/bin/phpize

 

 

本文由www.2003.com发布于计算机教程,转载请注明出处:ThinkPHP出现Call to undefined function bcadd()怎么解决

关键词: