php扩展模块安装
- 当php安装好以后,但是到后期因为需求的变更,缺少一个扩展模块,但是又不能重新编译php。可以通过直接编译一个扩展模块(生产一个.so文件),然后在php.ini中配置一下,就可以加载被使用了。查看php加载了哪些功能模块命令:
/usr/local/php7/bin/php -m
- 安装过程。这里以安装redis模块(在LMAP架构下当缓存来使用)为例.
1.cd /usr/local/src/
2.使用wget来下载redis的包
3.mv develop phpredis-develop.zip //
4 . unzip phpredis-develop.zip //解压缩
5.cd phpredis-develop //切换到该目录下
6./usr/local/php7/bin/phphize //生产configure文件
7.在生产configure文件时,由于缺少autoconf包,所以并不会生产configure文件的yum install -y autoconf
8.再次执行/usr/local/php7/bin/phphize
,一切正常的话,会在该目录下生产configure的一个子目录。
9.配置
./configure --with-php-config=/usr/local/php7/bin/php-config
10 .编译并安装
make && make install
11.完成后会生成/usr/local/php7/bin/php/extensions/no-debug-zts-20180308/这样的一个以创建日期为子目录名的目录,在这个目录下会存在opcache.so和Redis.so2个文件。或者使用/usr/local/php7/bin/php -i |grep -i extension_dir /查看扩展模块存放目录,也可以在php.ini中去定义该路径。
12.vim /usr/local/php7/etc/php.ini
在;extesnion=php_shmop.dll
下写入extesnion=redis.so
保存退出
13.查看是否已经加载
/usr/local/php7/bin/php -m |grep redis
```如果正常,是可以查看到redis的。
14.在/usr/local/php-7.1.6/ext/目录下会存在许多的所谓的模块。
15.如果我们需要的模块是自带源码包的/ext/目录下存在的,那么可以直接进行编译,比如安装zip 直接执行`/usr/local/php7/bin/phpize`
16.接着执行`./configure --with-php-config=/usr/local/php7/bin/php-config`
17.编译安装
<div class="se-preview-section-delimiter"></div>
make && make install
“`
18.在/usr/local/php7/bin/php/extensions/no-debug-zts-20180308/里面多出一个zip.so的文件。