1.32 php动态扩展模块安装
注: 本节操作使用PHP7。
查看PHP模块:
1[root@cham002 ~]# /usr/local/php/bin/php -m 2[PHP Modules] 3bz2 4Core 5ctype 6date 7dom 8ereg 9exif 10fileinfo 11filter 12gd 13hash 14iconv 15json 16libxml 17mbstring 18mcrypt 19mysql 20mysqli 21openssl 22pcre 23PDO 24pdo_mysql 25pdo_sqlite 26Phar 27posix 28Reflection 29session 30SimpleXML 31soap 32sockets 33SPL 34sqlite3 35standard 36tokenizer 37xml 38xmlreader 39xmlwriter 40zlib 41 42[Zend Modules]
安装Redis模块
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
1[root@cham002 ~]# cd /usr/local/src/ 2[root@cham002 src]# ls 3apr-1.6.3 apr-util-1.6.1.tar.bz2 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz php-5.6.30.tar.gz 4apr-1.6.3.tar.gz httpd-2.4.29 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-7.1.6 5apr-util-1.6.1 httpd-2.4.29.tar.gz php-5.6.30 php-7.1.6.tar.bz2 6[root@cham002 src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop 7--2017-12-27 02:00:01-- https://codeload.github.com/phpredis/phpredis/zip/develop 8正在解析主机 codeload.github.com (codeload.github.com)... 192.30.255.120, 192.30.255.121 9正在连接 codeload.github.com (codeload.github.com)|192.30.255.120|:443... 已连接。 10已发出 HTTP 请求,正在等待回应... 200 OK 11长度:未指定 [application/zip] 12正在保存至: “develop” 13 14 [ <=> ] 228,014 129KB/s 用时 1.7s 15 162017-12-27 02:00:04 (129 KB/s) - “develop” 已保存 [228014] 17[root@cham002 src]# du -sh develop 18224K develop 19[root@cham002 src]# mv develop phpredis-develop.zip 20[root@cham002 src]# ls 21apr-1.6.3 httpd-2.4.29 php-5.6.30 phpredis-develop.zip 22apr-1.6.3.tar.gz httpd-2.4.29.tar.gz php-5.6.30.tar.gz 23apr-util-1.6.1 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz php-7.1.6 24apr-util-1.6.1.tar.bz2 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-7.1.6.tar.bz2 25 26[root@cham002 src]# unzip phpredis-develop.zip 27 28[root@cham002 src]# cd phpredis-develop/ 29[root@cham002 phpredis-develop]# ls 30arrays.markdown config.m4 debian library.h README.markdown redis.c redis_session.c 31cluster_library.c config.w32 debian.control mkdeb-apache2.sh redis_array.c redis_cluster.c redis_session.h 32cluster_library.h COPYING ISSUE_TEMPLATE.md mkdeb.sh redis_array.h redis_cluster.h rpm 33cluster.markdown crc16.h liblzf package.xml redis_array_impl.c redis_commands.c serialize.list 34common.h CREDITS library.c php_redis.h redis_array_impl.h redis_commands.h tests 35 36 37[root@cham002 phpredis-develop]# /usr/local/php7/bin/phpize 38#执行该命令的目的是生成configure文件,否则无法进行编译安装 39Configuring for: 40PHP Api Version: 20160303 41Zend Module Api No: 20160303 42Zend Extension Api No: 320160303 43 44[root@cham002 phpredis-develop]# echo $? 450 46#没有出错 如果报以下错:安装autoconf这个包 yum install -y autoconf 47 48Cannot find autoconf. Please check your autoconf installation and the 49$PHP_AUTOCONF environment variable. Then, rerun this script. 50 51 52[root@cham002 phpredis-develop]# ls 53acinclude.m4 common.h COPYING library.c package.xml redis_cluster.c serialize.list 54aclocal.m4 config.guess crc16.h library.h php_redis.h redis_cluster.h tests 55arrays.markdown config.h.in CREDITS ltmain.sh README.markdown redis_commands.c 56autom4te.cache config.m4 debian Makefile.global redis_array.c redis_commands.h 57build config.sub debian.control missing redis_array.h redis_session.c 58cluster_library.c configure install-sh mkdeb-apache2.sh redis_array_impl.c redis_session.h 59cluster_library.h configure.in ISSUE_TEMPLATE.md mkdeb.sh redis_array_impl.h rpm 60cluster.markdown config.w32 liblzf mkinstalldirs redis.c run-tests.php 61 62开始安装 63 64环境配置 65[root@cham002 phpredis-develop]# ./configure --with-php-config=/usr/local/php7/bin/php-config 66完成后检测 67[root@cham002 phpredis-develop]# echo $? 680 69 70编译&安装 71[root@cham002 phpredis-develop]# make 72 73[root@cham002 phpredis-develop]# echo $? 740 75 76[root@cham002 phpredis-develop]# make install 77Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ 78 79[root@cham002 phpredis-develop]# echo $? 800 81 82[root@cham002 phpredis-develop]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ 83opcache.so redis.so 84 85 86
为PHP加载Redis模块
先查看扩展模块所在目录:
1[root@cham002 phpredis-develop]# /usr/local/php7/bin/php -i |grep extension_dir 2extension_dir => /usr/local/php7/lib/php/extensions/no-debug-zts-20160303 => /usr/local/php7/lib/php/extensions/no-debug-zts-20160303 3sqlite3.extension_dir => no value => no value
说明: 该目录可以在PHP配置文件php.ini中进行设置(保持默认)
加载Redis模块
编辑PHP的配置文件:
[root@cham002 phpredis-develop]# vim /usr/local/php7/etc/php.ini

说明: 在配置文件中加入“extension=redis.so”即可!该文件中“;”表示注释符号,同“#”。
1[root@cham002 phpredis-develop]# /usr/local/php7/bin/php -m |grep redis 2redis
关于扩展板块
在PHP的源码包中没有第三方模块的包,但是在PHP源码包的/ext/目录下有好多扩展模块,如果所需要的扩展模块在该目录下,可以直接进行安装:
1[root@cham002 phpredis-develop]# cd /usr/local/src/php-7.1.6/ 2[root@cham002 php-7.1.6]# ls 3acinclude.m4 EXTENSIONS Makefile.fragments README.EXT_SKEL run-tests.php 4aclocal.m4 footer Makefile.gcov README.GIT-RULES sapi 5appveyor generated_lists Makefile.global README.input_filter scripts 6build genfiles Makefile.objects README.MAILINGLIST_RULES server-tests-config.php 7buildconf header makerpm README.md server-tests.php 8buildconf.bat include meta_ccld README.namespaces snapshot 9CODING_STANDARDS INSTALL missing README.NEW-OUTPUT-API stamp-h.in 10config.guess install-sh mkinstalldirs README.PARAMETER_PARSING_API stub.c 11config.log libphp7.la modules README.REDIST.BINS tests 12config.nice libs netware README.RELEASE_PROCESS travis 13config.status libtool NEWS README.SELF-CONTAINED-EXTENSIONS TSRM 14config.sub LICENSE pear README.STREAMS UPGRADING 15configure ltmain.sh php7.spec README.SUBMITTING_PATCH UPGRADING.INTERNALS 16configure.in main php7.spec.in README.TESTING vcsclean 17CONTRIBUTING.md makedist php.gif README.TESTING2 win32 18CREDITS Makefile php.ini-development README.UNIX-BUILD-SYSTEM Zend 19ext Makefile.frag php.ini-production README.WIN32-BUILD-SYSTEM 20 21[root@cham002 php-7.1.6]# ls ext 22bcmath dom gd json odbc pdo_mysql pspell snmp sysvshm xsl 23bz2 enchant gettext ldap opcache pdo_oci readline soap tidy zip 24calendar exif gmp libxml openssl pdo_odbc recode sockets tokenizer zlib 25com_dotnet ext_skel hash mbstring pcntl pdo_pgsql reflection spl wddx 26ctype ext_skel_win32.php iconv mcrypt pcre pdo_sqlite session sqlite3 xml 27curl fileinfo imap mysqli pdo pgsql shmop standard xmlreader 28date filter interbase mysqlnd pdo_dblib phar simplexml sysvmsg xmlrpc 29dba ftp intl oci8 pdo_firebird posix skeleton sysvsem xmlwriter
现在扩展模块中没有zip
1[root@cham002 php-7.1.6]# /usr/local/php7/bin/php -m |grep zip 2现在扩展模块中没有zip 3[root@cham002 php-7.1.6]# cd ext 4[root@cham002 ext]# cd zip 5[root@cham002 zip]# /usr/local/php7/bin/phpize 6Configuring for: 7PHP Api Version: 20160303 8Zend Module Api No: 20160303 9Zend Extension Api No: 320160303 10#执行该命令的目的是生成configure文件,否则无法进行编译安装 11 12[root@cham002 zip]# ./configure --with-php-config=/usr/local/php7/bin/php-config 13[root@cham002 zip]# echo $? 140
接下来就make我出现了这种错误。没有没有截图。可以用#make clean
然后在重新执行命令

1[root@cham002 zip]# make install 2Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ 3[root@cham002 zip]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ 4opcache.so redis.so zip.so
