2018-3-8 11周3次课 php扩展模块安装

11.32 php扩展模块安

·查看PHP模块

/usr/local/php7/bin/php -m

忘记安装或者需求变更,需要增加模块

下面安装一个redis的模块(通常在LAMP架构下当做缓存来用)

[[email protected] php-7.1.6]# cd /usr/local/src/
[[email protected] src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
(过程省略)
[[email protected] src]# mv develop phpredis-develop.zip          ##改名
[[email protected] src]# unzip phpredis-develop.zip
(过程省略)
[[email protected] phpredis-develop]# yum install -y autoconf
(过程省略)
[[email protected] phpredis-develop]# /usr/local/php7/bin/phpize      ##生成./configure
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[[email protected] 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
[[email protected] phpredis-develop]# ./configure --with-php-config=/usr/local/php7/bin/php-config
(编译过程省略)
[[email protected] phpredis-develop]# make && make install
(过程省略)
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/

make install会把redis.so放在 /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/ 中

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

(PHP还不支持redis,需要加载redis.so)

·查看扩展模块存放目录,我们可以在php.ini中去自定义该路径

[[email protected] 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

编辑/usr/local/php7/etc/php.ini,增加一行配置(可以放到文件最后一行)

extension = redis.so

[[email protected] phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
redis

如果想编译一个模块时,如果php源码包中的ext文件夹下自带了该目录,那么不用下载就可以直接编译,如果没有,那么就需要去下载

在php源码包里有很多模块,我们安装一个没有加载的zip模块

[[email protected] src]# cd php-7.1.6/ext/
[[email protected] 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
[[email protected] ext]# /usr/local/php7/bin/php -m |grep zip            ##没有zip模块
[[email protected] ext]# cd zip/
[[email protected] zip]# ls
config.m4  config.w32  CREDITS  examples  lib  LICENSE_libzip  php_zip.c  php_zip.h  tests  TODO  zip_stream.c
[[email protected] zip]# /usr/local/php7/bin/phpize             ##执行,生成./configure
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[[email protected] zip]# ls
acinclude.m4    build         config.m4   configure.in  examples    LICENSE_libzip   missing        php_zip.h      TODO
aclocal.m4      config.guess  config.sub  config.w32    install-sh  ltmain.sh        mkinstalldirs  run-tests.php  zip_stream.c
autom4te.cache  config.h.in   configure   CREDITS       lib         Makefile.global  php_zip.c      tests
[[email protected] zip]# ./configure --with-php-config=/usr/local/php7/bin/php-config
(编译过程省略)
[[email protected] zip]# make && make install
[[email protected] zip]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303
redis.so  zip.so
[[email protected] zip]# vim /usr/local/php7/etc/php.ini
extension=zip.so
/usr/local/php7/bin/php -m |grep zip
zip

原文地址:http://blog.51cto.com/11530642/2083990

时间: 2024-10-28 14:39:42

2018-3-8 11周3次课 php扩展模块安装的相关文章

2018.3.6 11周1次课

十一周一次课(3月6日) 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 11.25 配置防盗链 通过限制referer来实现防盗链的功 防盗链,通俗讲,就是不让别人盗用你网站上的资源.这个资源,通常指的是图片.视频.歌曲.文档等.referer是指:你通过A网站的一个页面http://a.com/a.html里面的链接去访问B网站的的一个页面http://b.com/b.html,那么这个B网站页面的referer就是http://a.

2018.3.7 11周2次课

十一周二次课(3月7日) 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置 11.28 限定某个目录禁止解析php 对于使用PHP语言编写的网站,有一些目录是有需求上传文件的,比如在前面列举的那个防盗链案例,因为服务器可以上传图片,并且没有做防盗链,所以被人家当成了一个图片存储服务器,并且盗用带宽流量.如果网站代码有漏洞,让黑客上传了一个用PHP代码写的木马,由于网站可以执行PHP程序,最终会让黑客拿到服务器权限.为了避免这种情

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.1.12 5周5次课

五周第五次课(1月12日) 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 1. 特殊符号 * 任意个任意字符 *代表零个或多个任意字符 ? 任意一个字符 ?只代表一个任意的字符 # 注释字符 表示注释说明,即#后面的内容都会被忽略 \ 脱义字符 这个字符会将后面的特殊符号 (如*) 还原为普通字符 | 管道符 这个字符前面曾多次出现过,它的作用是将前面

2018.02.26 9周4次课

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL.MariaDB介绍 11.3/11.4/11.5 MySQL安装 11.1 LAMP架构介绍 MySQL.MariaDB介绍 MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀) MySQL官网https://www.mysql.com  最新版本5.7GA/8.0DMR MySQL5.6变化比较大,5.7性

2018.2.27 9周5次课

九周第五次课(2月27日) 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 11.6 MariaDB安装 cd /usr/local/src 下载二进制安装包:wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 解压安装包:tar -zxvf mariad