php扩展模块装安装

扩展
apache rewrite教程http://coffeelet.blog.163.com/blog/static/13515745320115842755199/http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html
apache rewrite 出现死循环 http://ask.apelearn.com/question/1043
php错误日志级别参考 http://ask.apelearn.com/question/6973
php开启短标签 http://ask.apelearn.com/question/120
php.ini详解 http://legolas.blog.51cto.com/2682485/493917

 

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中去自定义该路径
  • vim /usr/local/php/etc/php.ini //增加一行配置(可以放到文件最后一行)
  • extension = redis.so

php扩展模块装安装

  • 在php安装编译完成后,这时候发现缺少了一个模块,但又无法重新编译php模块,那就使用扩展模块编译
  • 查看模块
[root@yong-02 src]# /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]
  • 下载redis包
  • redis模块,在lamp通常用作缓存
[root@yong-02 src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
  • 然后更改包的名称
[root@yong-02 src]# mv develop phpredis-develop.zip
[root@yong-02 src]# ls
apr-1.6.3               httpd-2.4.33                               php-5.6.32.tar.bz2
apr-1.6.3.tar.gz        httpd-2.4.33.tar.gz                        php-7.1.6
apr-util-1.6.1          mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  php-7.1.6.tar.bz2
apr-util-1.6.1.tar.bz2  php-5.6.32  
  • 把安装包解压
[root@yong-02 src]# unzip phpredis-develop.zip 
  • 查看解压包
[root@yong-02 src]# ls
apr-1.6.3               httpd-2.4.33.tar.gz                        php-7.1.6.tar.bz2
apr-1.6.3.tar.gz        mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  phpredis-develop
apr-util-1.6.1          php-5.6.32                                 phpredis-develop.zip
apr-util-1.6.1.tar.bz2  php-5.6.32.tar.bz2
httpd-2.4.33            php-7.1.6
  • 切换到phpredis-develop包下面
[root@yong-02 src]# cd phpredis-develop/
  • 编译方法有些特殊,需要先做phpize的操作,目的是为了生成configure文件——>因为编译一个源码包,必须要先有configure,否则是无法去配置的
  • 这里使用的是php7做的实验
[root@yong-02 phpredis-develop]# /usr/local/php7/bin/phpize    //生成configure文件
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.
  • 报错
    • 缺少autoconf包
  • 解决办法
    • yum install -y autoconf
[root@yong-02 phpredis-develop]# yum install -y autoconf

然后再去生成configure文件
[root@yong-02 phpredis-develop]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303

  • 这时ls 可以查看到configure文件

204745_OTWS_3791387.png

  • 然后再去配置./configure --with-php-config=/usr/local/php7/bin/php-config
[root@yong-02 phpredis-develop]# ./configure --with-php-config=/usr/local/php7/bin/php-config
  • 再去make
[root@yong-02 phpredis-develop]# make
  • 然后在make install
  • make install会把 .so 文件放到/usr/local/php7/lib/php/extensions/no-debug-zts-20160303/目录下面
[root@yong-02 phpredis-develop]# make install
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/


  • 这时可以ls 查看下,会看到生成了 redis.so 文件
  • redis.so文件,就是我们需要的扩展模块
[root@yong-02 phpredis-develop]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so  redis.so
  • 现在php还是不支持 redis模块的,可以grep查看下,会看到并没有 redis模块
[root@yong-02 phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
[root@yong-02 phpredis-develop]# 
  • 所以需要去配置下,加载redis模块,去编辑配置文件
  • 配置文件前,先去查看扩展模块存放目录
  • /usr/local/php7/bin/php -i |grep extension_dir //查看扩展模块存放目录,我们可以在php.ini中去自定义该路径
  • 所有的扩展模块,都会默认放到/usr/local/php7/lib/php/extensions/no-debug-zts-20160303下去
[root@yong-02 phpredis-develop]# /usr/local/php7/bin/php -i |grep 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
  • 编辑php.ini文件,增加一行配置
  • vim /usr/local/php7/etc/php.ini
[root@yong-02 phpredis-develop]# vim /usr/local/php7/etc/php.ini

可以将配置的一行放在文件最后面,也可以搜索/exextension,放到相关的下面
extension = redis.so

然后保存退出
  • 再来查看是否有redis模块,会看到已经加载了
[root@yong-02 phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
redis
  • 另外一种方法快速安装redis.so模块  /usr/local/php7/bin/pecl install redis
  • 211147_4GPM_3791387.png

总结

  • 如果你想编译一个模块,而且他自带的源码包目录/usr/local/src/php-7.1.6/ext 下有,那么只需要进行以下一些步骤,就可以完成扩展模块新增
  1. 在你需要增加的拓展模块的目录下执行 /usr/local/php7/bin/phpize ,生成一个configure 文件
  2. 执行 ./configure –with-php-config=/usr/local/php7/bin/php-config 配置php-config文件
  3. 开始编译 make
  4. 编译后移动到目录 make install
  5. 修改配置文件vim /usr/local/php7/etc/php.ini ,新增所需extension=xxxxxxx.so 拓展模块

关于扩展板块

  • 在PHP的源码包中没有第三方模块的包,但是在PHP源码包的/ext/目录下有好多扩展模块,如果所需要的扩展模块在该目录下,可以直接进行安装
  • 在源码包中安装模块,在php的源码包中,有一个ext目录,这个目录下有很多的模块
[root@yong-02 phpredis-develop]# cd /usr/local/src/php-7.1.6/ext/
[root@yong-02 ext]# ls
bcmath      ext_skel            interbase  opcache       pdo_sqlite  skeleton  tokenizer
bz2         ext_skel_win32.php  intl       openssl       pgsql       snmp      wddx
calendar    fileinfo            json       pcntl         phar        soap      xml
com_dotnet  filter              ldap       pcre          posix       sockets   xmlreader
ctype       ftp                 libxml     pdo           pspell      spl       xmlrpc
curl        gd                  mbstring   pdo_dblib     readline    sqlite3   xmlwriter
date        gettext             mcrypt     pdo_firebird  recode      standard  xsl
dba         gmp                 mysqli     pdo_mysql     reflection  sysvmsg   zip
dom         hash                mysqlnd    pdo_oci       session     sysvsem   zlib
enchant     iconv               oci8       pdo_odbc      shmop       sysvshm
exif        imap                odbc       pdo_pgsql     simplexml   tidy
  • 现在扩展模块中没有zip模块
[root@yong-02 ext]# /usr/local/php7/bin/php -m |grep zip
  • 编译zip模块
  • 进入到zip目录下,并查看
[root@yong-02 ext]# cd zip/
[root@yong-02 zip]# ls
config.m4   CREDITS   lib             php_zip.c  tests  zip_stream.c
config.w32  examples  LICENSE_libzip  php_zip.h  TODO
  1. 然后执行/usr/local/php7/bin/phpize命令,目的是生成configure文件,否则无法进行编译安装
[root@yong-02 zip]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
  • 再去配置./configure --with-php-config=/usr/local/php7/bin/php-config
[root@yong-02 zip]# ./configure --with-php-config=/usr/local/php7/bin/php-config

  • 然后再去make
[root@yong-02 zip]# make
  • 再去make install
[root@yong-02 zip]# make install
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
  • 这时候再去查看会看到zip模块的出现
[root@yong-02 zip]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so  redis.so  zip.so

 

转载于:https://my.oschina.net/u/3791387/blog/1824103

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值