昨天一个网友在WDCP面板环境中安装ThinkPHP程序的时候出现报错,有提示”Call to undefined function bcadd()”这样提示。根据搜索结果也有看到类似的案例发生,主要是因为ThinkPHP框架程序需要用到PHP bcmath扩展,而在默认我们安装或者编译PHP的时候没有一并编译进来。
我们有两个方法解决这个问题,一来重新编译PHP,把bcmath 重新添加编译,只是这个过程需要一些时间,或者我们下载PHP源码到服务器中,然后类似前天安装soap扩展一样的单独编译enable启动。这里,选择后者。
第一、选择PHP版本进入目录
这里我看到这位网友使用的是PHP5.3.17而且在当初是从WDCP面板5.2升级的,根目录有的安装包没有删除,所以我就不要去PHP官方网站删除,直接cd进入/ext/bcmath目录。
第二、编译启动bcmath过程
/usr/local/php/bin/phpize
./configure –with-php-config=/www/wdlinux/php/bin/php-config –enable-bcmath
make && make install
执行完毕之后,我们可以看到 :
/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/
这样子的目录URL地址,这里记录下来,然后添加到对应的PHP版本PHP.INI文件最后一行。
extension=/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/bcmath.so
第三、重启生效
service httpd restart
从探针中可以看到bcmath扩展已经启动生效,安装ThinkPHP程序环境已经没有问题,网友告知已经可以解决问题,看来就是这个扩展作怪导致无法安装,与此同时,如果有缺少其他PHP扩展,也是用这个方法安装。