【CentOS 7架构18】,php动态扩展模块#171228

hellopasswd


php动态扩展模块

  • /usr/local/php/bin/php -m #查看模块
  • 安装redis模块
  • cd /usr/local/src
  • wget https://codeload.github.com/phpredis/phpredis/zip/develop
  • mv develop phpredis-develop.zip
  • unzip phpredis-develop.zip
  • cd phpredis-develop
  • /usr/local/php/bin/phpize #生成configure文件
  • ./configure --with-php-config=/usr/local/php/bin/php-config
  • make && make install
  • /usr/local/php/bin/php -i | grep extension_dir #查看扩展模块存在目录,可以在php.ini中自定义该路径
  • vi /usr/local/php/etc/php.ini #增加一行配置,在文件未追加extension=redis.so
[root@localhost ~]# /usr/local/php/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
--2017-11-06 02:55:26--  https://codeload.github.com/phpredis/phpredis/zip/develop
Resolving codeload.github.com (codeload.github.com)... 192.30.255.120, 192.30.255.121
Connecting to codeload.github.com (codeload.github.com)|192.30.255.120|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘develop’

    [                                                      <=>         ] 228,014     2.22KB/s   in 81s    

2017-11-06 02:56:52 (2.75 KB/s) - ‘develop’ saved [228014]
[root@localhost src]# du -sh develop 
224K	develop

[root@localhost src]# mv develop phpredis-develop.zip
[root@localhost src]# unzip phpredis-develop.zip 
Archive:  phpredis-develop.zip
b566fb44efec4450d3ae53802ddd6ea17c70f27b
   creating: phpredis-develop/
  inflating: phpredis-develop/.gitignore  
  inflating: phpredis-develop/.gitmodules  
  inflating: phpredis-develop/.travis.yml  
  inflating: phpredis-develop/COPYING  
  inflating: phpredis-develop/CREDITS  
  inflating: phpredis-develop/ISSUE_TEMPLATE.md  
  inflating: phpredis-develop/README.markdown  
  inflating: phpredis-develop/arrays.markdown  
  inflating: phpredis-develop/cluster.markdown  
  inflating: phpredis-develop/cluster_library.c  
  inflating: phpredis-develop/cluster_library.h  
  inflating: phpredis-develop/common.h  
  inflating: phpredis-develop/config.m4  
  inflating: phpredis-develop/config.w32  
  inflating: phpredis-develop/crc16.h  
  inflating: phpredis-develop/debian.control  
   creating: phpredis-develop/debian/
  inflating: phpredis-develop/debian/changelog  
 extracting: phpredis-develop/debian/compat  
  inflating: phpredis-develop/debian/control  
  inflating: phpredis-develop/debian/copyright  
  inflating: phpredis-develop/debian/postinst  
  inflating: phpredis-develop/debian/postrm  
  inflating: phpredis-develop/debian/rules  
   creating: phpredis-develop/liblzf/
  inflating: phpredis-develop/library.c  
  inflating: phpredis-develop/library.h  
  inflating: phpredis-develop/mkdeb-apache2.sh  
  inflating: phpredis-develop/mkdeb.sh  
  inflating: phpredis-develop/package.xml  
  inflating: phpredis-develop/php_redis.h  
  inflating: phpredis-develop/redis.c  
  inflating: phpredis-develop/redis_array.c  
  inflating: phpredis-develop/redis_array.h  
  inflating: phpredis-develop/redis_array_impl.c  
  inflating: phpredis-develop/redis_array_impl.h  
  inflating: phpredis-develop/redis_cluster.c  
  inflating: phpredis-develop/redis_cluster.h  
  inflating: phpredis-develop/redis_commands.c  
  inflating: phpredis-develop/redis_commands.h  
  inflating: phpredis-develop/redis_session.c  
  inflating: phpredis-develop/redis_session.h  
   creating: phpredis-develop/rpm/
  inflating: phpredis-develop/rpm/php-redis.spec  
 extracting: phpredis-develop/rpm/redis.ini  
  inflating: phpredis-develop/serialize.list  
   creating: phpredis-develop/tests/
  inflating: phpredis-develop/tests/RedisArrayTest.php  
  inflating: phpredis-develop/tests/RedisClusterTest.php  
  inflating: phpredis-develop/tests/RedisTest.php  
  inflating: phpredis-develop/tests/TestRedis.php  
  inflating: phpredis-develop/tests/TestSuite.php  
  inflating: phpredis-develop/tests/make-cluster.sh  
  inflating: phpredis-develop/tests/mkring.sh
[root@localhost src]# ls
apr-1.6.3            httpd-2.4.29                                  php-7.1.6
apr-1.6.3.tar.gz     httpd-2.4.29.tar.gz                           php-7.1.6.tar
apr-util-1.6.1       mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  phpredis-develop
apr-util-1.6.1.tar   mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz     phpredis-develop.zip
httpd-2.2.34         php-5.6.30
httpd-2.2.34.tar.gz  php-5.6.30.tar
[root@localhost src]# cd phpredis-develop/
[root@localhost phpredis-develop]# /usr/local/php7/bin/phpize 
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

[root@localhost phpredis-develop]# yum install -y autoconf
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirror01.idc.hinet.net
Resolving Dependencies
--> Running transaction check
---> Package autoconf.noarch 0:2.69-11.el7 will be installed
--> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.el7.noarch
--> Running transaction check
---> Package m4.x86_64 0:1.4.16-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
 Package                  Arch                   Version                        Repository            Size
===========================================================================================================
Installing:
 autoconf                 noarch                 2.69-11.el7                    base                 701 k
Installing for dependencies:
 m4                       x86_64                 1.4.16-10.el7                  base                 256 k

Transaction Summary
===========================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 957 k
Installed size: 2.7 M
Downloading packages:
(1/2): m4-1.4.16-10.el7.x86_64.rpm                                                  | 256 kB  00:00:30     
(2/2): autoconf-2.69-11.el7.noarch.rpm                                              | 701 kB  00:00:39     
-----------------------------------------------------------------------------------------------------------
Total                                                                       24 kB/s | 957 kB  00:00:40     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : m4-1.4.16-10.el7.x86_64                                                                 1/2 
  Installing : autoconf-2.69-11.el7.noarch                                                             2/2 
  Verifying  : m4-1.4.16-10.el7.x86_64                                                                 1/2 
  Verifying  : autoconf-2.69-11.el7.noarch                                                             2/2 

Installed:
  autoconf.noarch 0:2.69-11.el7                                                                            

Dependency Installed:
  m4.x86_64 0:1.4.16-10.el7                                                                                

Complete!

[root@localhost phpredis-develop]# /usr/local/php7/bin/phpize 
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@localhost phpredis-develop]# ls
acinclude.m4       config.guess  CREDITS            Makefile.global   redis_array.h       redis_session.h
aclocal.m4         config.h.in   debian             missing           redis_array_impl.c  rpm
arrays.markdown    config.m4     debian.control     mkdeb-apache2.sh  redis_array_impl.h  run-tests.php
autom4te.cache     config.sub    install-sh         mkdeb.sh          redis.c             serialize.list
build              configure     ISSUE_TEMPLATE.md  mkinstalldirs     redis_cluster.c     tests
cluster_library.c  configure.in  liblzf             package.xml       redis_cluster.h
cluster_library.h  config.w32    library.c          php_redis.h       redis_commands.c
cluster.markdown   COPYING       library.h          README.markdown   redis_commands.h
common.h           crc16.h       ltmain.sh          redis_array.c     redis_session.c

[root@localhost phpredis-develop]# ./configure --with-php-config=/usr/local/php7/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/php7
checking for PHP includes... -I/usr/local/php7/include/php -I/usr/local/php7/include/php/main -I/usr/local/php7/include/php/TSRM -I/usr/local/php7/include/php/Zend -I/usr/local/php7/include/php/ext -I/usr/local/php7/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/php7/lib/php/extensions/no-debug-zts-20160303
checking for PHP installed headers prefix... /usr/local/php7/include/php
checking if debug is enabled... no
checking if zts is enabled... yes
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 redis support... yes, shared
checking whether to enable sessions... yes
checking whether to enable igbinary serializer support... no
checking whether to enable lzf compression... no
checking use system liblzf... no
checking for redis igbinary support... disabled
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

[root@localhost phpredis-develop]# make && make install
	#编译和安装过程
	.
	.
	.
	----------------------------------------------------------------------
	Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
	make: warning:  Clock skew detected.  Your build may be incomplete.

[root@localhost phpredis-develop]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so  redis.so

[root@localhost phpredis-develop]# /usr/local/php7/bin/php -m | grep redis
[root@localhost phpredis-develop]# /usr/local/php7/bin/php -i | grep -i extension_dir
extension_dir => /usr/local/php7/lib/php/extensions/no-debug-zts-20160303 => /usr/local/php7/lib/php/extensions/no-debug-zts-20160303
sqlite3.extension_dir => no value => no value


[root@localhost phpredis-develop]# vi /usr/local/php7/etc/php.ini
/extension
    906 ;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
    907 ;extension=php_openssl.dll
    908 ;extension=php_pdo_firebird.dll
    909 ;extension=php_pdo_mysql.dll
    910 ;extension=php_pdo_oci.dll
    911 ;extension=php_pdo_odbc.dll
    912 ;extension=php_pdo_pgsql.dll
    913 ;extension=php_pdo_sqlite.dll
    914 ;extension=php_pgsql.dll
    915 ;extension=php_shmop.dll
    916 
    917 ; The MIBS data available in the PHP distribution must be installed.
    918 ; See http://www.php.net/manual/en/snmp.installation.php
    919 ;extension=php_snmp.dll
    920 
    921 ;extension=php_soap.dll

添加一行extension=redis.so为

    907 ;extension=php_openssl.dll
    908 ;extension=php_pdo_firebird.dll
    909 ;extension=php_pdo_mysql.dll
    910 ;extension=php_pdo_oci.dll
    911 ;extension=php_pdo_odbc.dll
    912 ;extension=php_pdo_pgsql.dll
    913 ;extension=php_pdo_sqlite.dll
    914 ;extension=php_pgsql.dll
    915 ;extension=php_shmop.dll
    916 extension=redis.so
    917 
    918 ; The MIBS data available in the PHP distribution must be installed.
    919 ; See http://www.php.net/manual/en/snmp.installation.php
    920 ;extension=php_snmp.dll
    921 
    922 ;extension=php_soap.dll
[root@localhost phpredis-develop]# /usr/local/php7/bin/php -m | grep redis
redis


修改与171228

转载于:https://my.oschina.net/hellopasswd/blog/1595890

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值