十一週三次課php
11.32PHP動態擴展模塊安裝mysql
• /usr/local/php/bin/php -m //查看模塊linux
• 下面安裝一個redis的模塊git
• cd /usr/local/src/github
• wget https://codeload.github.com/phpredis/phpredis/zip/developredis
• mv develop phpredis-develop.zipsql
• unzip phpredis-develop.zipapache
• cd phpredis-developjson
• /usr/local/php/bin/phpize //生成configure文件vim
• ./configure --with-php-config=/usr/local/php/bin/php-config
• make && make install
• /usr/local/php/bin/php -i |grep extension_dir //查看擴展模塊存放目錄,咱們能夠在php.ini中去自定義該路徑
• vim /usr/local/php/etc/php.ini //增長一行配置(能夠放到文件最後一行)
extension = redis.so
1.查看模塊
[root@tianqi-01 phpredis-develop]# /usr/local/php7/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
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@tianqi-01 phpredis-develop]#
2.而後切換到/usr/local/src/目錄下
[root@tianqi-01 php-7.1.6]# cd /usr/local/src/
[root@tianqi-01 src]#
3.下載redis包
[root@tianqi-01 src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
4.查看並更改包的名稱
[root@tianqi-01 src]# ls
? apr-util-1.6.1.tar.bz2 httpd-2.2.34.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-7.1.6.tar.bz2
apr-1.6.3 d? httpd-2.4.29 php-5.6.30
apr-1.6.3.tar.gz develop httpd-2.4.29.tar.gz php-5.6.30.tar.gz
apr-util-1.6.1 httpd-2.2.34 mariadb-10.2.6-linux-x86_64.tar.gz php-7.1.6
[root@tianqi-01 src]# mv develop phpredis-develop.zip
[root@tianqi-01 src]#
5.解壓安裝包
[root@tianqi-01 src]# unzip phpredis-develop.zip
6.查看解壓包
[root@tianqi-01 src]# ls
? apr-util-1.6.1.tar.bz2 httpd-2.4.29 php-5.6.30 phpredis-develop
apr-1.6.3 d? httpd-2.4.29.tar.gz php-5.6.30.tar.gz phpredis-develop.zip
apr-1.6.3.tar.gz httpd-2.2.34 mariadb-10.2.6-linux-x86_64.tar.gz php-7.1.6
apr-util-1.6.1 httpd-2.2.34.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-7.1.6.tar.bz2
[root@tianqi-01 src]#
7.切換到phpredis-develop目錄下面
[root@tianqi-01 src]# cd phpredis-develop
[root@tianqi-01 phpredis-develop]#
8.編譯方法有些特殊,須要先作phpize的操做,目的是爲了生成configure文件——>由於編譯一個源碼包,必需要先有configure,不然是沒法去配置的
[root@tianqi-01 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@tianqi-01 phpredis-develop]#
[root@tianqi-01 phpredis-develop]# yum install -y autoconf
[root@tianqi-01 phpredis-develop]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[root@tianqi-01 phpredis-develop]#
9.這是ls會看到生成了一個configure文件
[root@tianqi-01 phpredis-develop]# ls
acinclude.m4 cluster.markdown configure.in install-sh missing redis_array.c redis_commands.c tests
aclocal.m4 common.h config.w32 ISSUE_TEMPLATE.md mkdeb-apache2.sh redis_array.h redis_commands.h
arrays.markdown config.guess COPYING liblzf mkdeb.sh redis_array_impl.c redis_session.c
autom4te.cache config.h.in crc16.h library.c mkinstalldirs redis_array_impl.h redis_session.h
build config.m4 CREDITS library.h package.xml redis.c rpm
cluster_library.c config.sub debian ltmain.sh php_redis.h redis_cluster.c run-tests.php
cluster_library.h configure debian.control Makefile.global README.markdown redis_cluster.h serialize.list
[root@tianqi-01 phpredis-develop]#
10.而後再去配置./configure --with-php-config=/usr/local/php7/bin/php-config
[root@tianqi-01 phpredis-develop]# ./configure --with-php-config=/usr/local/php7/bin/php-config
11.用echo $?查看配置是否成功
[root@tianqi-01 phpredis-develop]# echo $?
0
[root@tianqi-01 phpredis-develop]#
12.使用make && make install進行編譯
[root@tianqi-01 phpredis-develop]# make && make install
13.用echo $?查看配置是否成功
[root@tianqi-01 phpredis-develop]# echo $?
0
[root@tianqi-01 phpredis-develop]#
14.這時能夠ls 查看下,會看到生成了 redis.so 文件
[root@tianqi-01 phpredis-develop]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so redis.so
[root@tianqi-01 phpredis-develop]#
15.如今php仍是不支持 redis模塊的,能夠grep查看下,會看到並無 redis模塊
[root@tianqi-01 phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
[root@tianqi-01 phpredis-develop]#
16.因此須要去配置下,加載redis模塊,去編輯配置文件
17.配置文件前,先去查看擴展模塊存放目錄
[root@tianqi-01 phpredis-develop]# /usr/local/php/bin/php -i |grep extension_dir
PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226
sqlite3.extension_dir => no value => no value
[root@tianqi-01 phpredis-develop]#
18.編輯php.ini文件,增長一行配置
[root@tianqi-01 phpredis-develop]# vim /usr/local/php7/etc/php.ini
//能夠將配置的一行放在文件最後面,也能夠搜索/extension,放到相關的下面
extension=redis.so
19.再來查看是否有redis模塊,會看到已經加載了
[root@tianqi-01 phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
redis
[root@tianqi-01 phpredis-develop]#
1.在源碼包中安裝模塊
[root@tianqi-01 ext]# cd /usr/local/src/php-7.1.6/
[root@tianqi-01 php-7.1.6]# ls
acinclude.m4 CONTRIBUTING.md LICENSE modules README.namespaces scripts
aclocal.m4 CREDITS ltmain.sh netware README.NEW-OUTPUT-API server-tests-config.php
appveyor ext main NEWS README.PARAMETER_PARSING_API server-tests.php
build EXTENSIONS makedist pear README.REDIST.BINS snapshot
buildconf footer Makefile php7.spec README.RELEASE_PROCESS stamp-h.in
buildconf.bat generated_lists Makefile.frag php7.spec.in README.SELF-CONTAINED-EXTENSIONS stub.c
CODING_STANDARDS genfiles Makefile.fragments php.gif README.STREAMS tests
config.guess header Makefile.gcov php.ini-development README.SUBMITTING_PATCH travis
config.log include Makefile.global php.ini-production README.TESTING TSRM
config.nice INSTALL Makefile.objects README.EXT_SKEL README.TESTING2 UPGRADING
config.status install-sh makerpm README.GIT-RULES README.UNIX-BUILD-SYSTEM UPGRADING.INTERNALS
config.sub libphp7.la meta_ccld README.input_filter README.WIN32-BUILD-SYSTEM vcsclean
configure libs missing README.MAILINGLIST_RULES run-tests.php win32
configure.in libtool mkinstalldirs README.md sapi Zend
[root@tianqi-01 php-7.1.6]#
2.在php的源碼包中,有一個ext目錄,這個目錄下有不少的模塊
[root@tianqi-01 php-7.1.6]# cd ext/
[root@tianqi-01 ext]# ls
bcmath dba filter imap mcrypt pcntl pdo_odbc readline snmp sysvsem xmlrpc
bz2 dom ftp interbase mysqli pcre pdo_pgsql recode soap sysvshm xmlwriter
calendar enchant gd intl mysqlnd pdo pdo_sqlite reflection sockets tidy xsl
com_dotnet exif gettext json oci8 pdo_dblib pgsql session spl tokenizer zip
ctype ext_skel gmp ldap odbc pdo_firebird phar shmop sqlite3 wddx zlib
curl ext_skel_win32.php hash libxml opcache pdo_mysql posix simplexml standard xml
date fileinfo iconv mbstring openssl pdo_oci pspell skeleton sysvmsg xmlreader
[root@tianqi-01 ext]#
3.如今擴展模塊中沒有zip模塊
[root@tianqi-01 ext]# /usr/local/php7/bin/php -m |grep zip
[root@tianqi-01 ext]#
4.編譯zip模塊
5.進入到zip目錄下,並查看
[root@tianqi-01 ext]# cd zip/
[root@tianqi-01 zip]# ls
config.m4 config.w32 CREDITS examples lib LICENSE_libzip php_zip.c php_zip.h tests TODO zip_stream.c
[root@tianqi-01 zip]#
6.而後執行/usr/local/php7/bin/phpize命令,目的是生成configure文件,不然沒法進行編譯安裝
[root@tianqi-01 zip]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
[root@tianqi-01 zip]#
7.再去配置./configure --with-php-config=/usr/local/php7/bin/php-config
[root@tianqi-01 zip]# ./configure --with-php-config=/usr/local/php7/bin/php-config
[root@tianqi-01 zip]# echo $?
0
[root@tianqi-01 zip]#
8.執行make && make install進行編譯
[root@tianqi-01 zip]# make && make install
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
這裏顯示擴展模塊的目錄
[root@tianqi-01 zip]# echo $?
0
[root@tianqi-01 zip]#
9.這時候再去查看會看到zip模塊的出現
[root@tianqi-01 zip]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so redis.so zip.so
[root@tianqi-01 zip]#
友情連接:阿銘Linux