PHP安装BCMath扩展的方法
今天小编就为大家分享一篇关于PHP安装BCMath扩展的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧。
编译安装 (PHP-5.6.23)
1.进入PHP源码包目录下的ext/bcmath目录。
[root@192 bcmath]# ls
bcmath.c config.m4 config.w32 CREDITS libbcmath package.xml php_bcmath.h tests
2.执行phpize命令,phpize命令在PHP安装目录的bin目录下,如/usr/local/php/bin/phpize。
- [root@192 bcmath]# /usr/local/php/bin/phpize
- Configuring for:
- PHP Api Version: 20131106
- Zend Module Api No: 20131226
- Zend Extension Api No: 220131226
3.执行./configure --with-php-config=/usr/local/php/bin/php-config。要依据php-config的实际路径。
- [root@192 bcmath]# ./configure --with-php-config=/usr/local/php/bin/php-config
- checking for grep that handles long lines and -e... /usr/bin/grep
- checking for egrep... /usr/bin/grep -E
- checking for a sed that does not truncate output... /usr/bin/sed
- checking for cc... cc
- checking whether the C compiler works... yes
- checking for C compiler default output file name... a.out
- checking for suffix of executables...
- checking whether we are cross compiling... no
- checking for suffix of object files... o
- checking whether we are using the GNU C compiler... yes
- checking whether cc accepts -g... yes
- checking for cc option to accept ISO C89... none needed
- checking how to run the C preprocessor... cc -E
- checking for icc... no
- checking for suncc... no
- checking whether cc understands -c and -o together... yes
- checking for system library directory... lib
- checking if compiler supports -R... no
- checking if compiler supports -Wl,-rpath,... yes
- checking build system type... x86_64-unknown-linux-gnu
- checking host system type... x86_64-unknown-linux-gnu
- checking target system type... x86_64-unknown-linux-gnu
- checking for PHP prefix... /usr/local/php
- checking for PHP includes... -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib
- checking for PHP extension directory... /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
- checking for PHP installed headers prefix... /usr/local/php/include/php
- checking if debug is enabled... no
- checking if zts is enabled... no
- checking for re2c... no
- configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
- checking for gawk... gawk
- checking whether to enable bc style precision math functions... yes, shared
- checking for ld used by cc... /usr/bin/ld
- checking if the linker (/usr/bin/ld) is GNU ld... yes
- checking for /usr/bin/ld option to reload object files... -r
- checking for BSD-compatible nm... /usr/bin/nm -B
- checking whether ln -s works... yes
- checking how to recognize dependent libraries... pass_all
- checking for ANSI C header files... yes
- checking for sys/types.h... yes
- checking for sys/stat.h... yes
- checking for stdlib.h... yes
- checking for string.h... yes
- checking for memory.h... yes
- checking for strings.h... yes
- checking for inttypes.h... yes
- checking for stdint.h... yes
- checking for unistd.h... yes
- checking dlfcn.h usability... yes
- checking dlfcn.h presence... yes
- checking for dlfcn.h... yes
- checking the maximum length of command line arguments... 1572864
- checking command to parse /usr/bin/nm -B output from cc object... ok
- checking for objdir... .libs
- checking for ar... ar
- checking for ranlib... ranlib
- checking for strip... strip
- checking if cc supports -fno-rtti -fno-exceptions... no
- checking for cc option to produce PIC... -fPIC
- checking if cc PIC flag -fPIC works... yes
- checking if cc static flag -static works... no
- checking if cc supports -c -o file.o... yes
- checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
- checking whether -lc should be explicitly linked in... no
- checking dynamic linker characteristics... GNU/Linux ld.so
- checking how to hardcode library paths into programs... immediate
- checking whether stripping libraries is possible... yes
- checking if libtool supports shared libraries... yes
- checking whether to build shared libraries... yes
- checking whether to build static libraries... no
- creating libtool
- appending configuration tag "CXX" to libtool
- configure: creating ./config.status
- config.status: creating config.h
4.执行make && make install。
- [root@192 bcmath]# make && make install
- /bin/sh /home/tools/phptools/php-5.6.23/ext/bcmath/libtool --mode=compile cc -I/home/tools/phptools/php-5.6.23/ext/bcmath/libbcmath/src -I. -I/home/tools/phptools/php-5.6.23/ext/bcmath -DPHP_ATOM_INC -I/home/tools/phptools/php-5.6.23/ext/bcmath/include -I/home/tools/phptools/php-5.6.23/ext/bcmath/main -I/home/tools/phptools/php-5.6.23/ext/bcmath -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /home/tools/phptools/php-5.6.23/ext/bcmath/bcmath.c -o bcmath.lo
- mkdir .libs
- cc -I/home/tools/phptools/php-5.6.23/ext/bcmath/libbcmath/src -I. -I/home/tools/phptools/php-5.6.23/ext/bcmath -DPHP_ATOM_INC -I/home/tools/phptools/php-5.6.23/ext/bcmath/include -I/home/tools/phptools/php-5.6.23/ext/bcmath/main -I/home/tools/phptools/php-5.6.23/ext/bcmath -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /home/tools/phptools/php-5.6.23/ext/bcmath/bcmath.c -fPIC -DPIC -o .libs/bcmath.o
- ... ...
- ----------------------------------------------------------------------
- Libraries have been installed in:
- /home/tools/phptools/php-5.6.23/ext/bcmath/modules
- If you ever happen to want to link against installed libraries
- in a given directory, LIBDIR, you must either use libtool, and
- specify the full pathname of the library, or use the `-LLIBDIR'
- flag during linking and do at least one of the following:
- - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
- during execution
- - add LIBDIR to the `LD_RUN_PATH' environment variable
- during linking
- - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- - have your system administrator add LIBDIR to `/etc/ld.so.conf'
- See any operating system documentation about shared libraries for
- more information, such as the ld(1) and ld.so(8) manual pages.
- ----------------------------------------------------------------------
- Build complete.
- Don't forget to run 'make test'.
- Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
5.查询,php.ini中extension_dir配置的目录中已经有bcmath.so文件了。
[root@192 sbin]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
总用量 3984
-rwxr-xr-x. 1 root root 382568 10月 22 17:57 bcmath.so
6.在Dynamic Extensions配置块下添加一行extension=bcmath.so。
7.重启php服务即可。