PHP報錯:Call to undefined function bcmul(),在網上查到
bc是Binary Calculator的縮寫。bc*函數的參數都是操作數加上一個可選的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale沒有提供,就用bcscale的缺省值。這里大數直接用一個由0-9組成的string表示,計算結果返回的也是一個 string。
bcmul()需要用到bcscale函數,需要用到php-bcmath擴展
一般情況下這個擴展在php安裝的時候,是存在ext/bcmath目錄的
那么利用phpize進行安裝新的php擴展
cd bcmath目錄下
/etc/php/bin/phpize(phpize的路徑根據各自安裝有所不同)
./configure --with-php-config=/www/wdlinux/php/bin/php-config(php-config文件的路徑)
make
make install
最后還需要把生成的bcmath.so文件加入到php.ini中 extesion=bcmath.so(如果沒有設定extesion_dir,可能要加上全路徑,查看phpize執行后的生成的so文件的路徑即可,這里是:extension_dir=/www/wdlinux/php/lib/php/extensions/no-debug-zts-20060613)
然后重啟web服務器,就Ok了
可能在make的時候,會遇到錯誤
錯誤:‘PHP_FE_END’未聲明(不在函數內) -----{error: ‘PHP_FE_END’ undeclared here (not in a function)}
解決方法: 源代碼有錯誤,進入php-5.3.18/ext/mcrypt目錄
sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./*.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./*.c
再重新make && make install
在我的實際操作中,寫入php.ini的是extension= bcmath.so,重啟服務后站點即可正常顯示,說明extension——dir已設定。關于這一點如何設置后期可以繼續學習。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。