扩展模块 php.ini_php扩展模块装安装 - lyy549745的个人空间 - OSCHINA - 中文开源技术交流社区...

本文详细介绍了如何在Linux环境下手动安装PHP的Redis和Zip扩展模块。首先,通过`php -m`查看已安装模块,然后下载并解压扩展源码,使用`phpize`生成configure文件,接着`./configure`配置,`make`编译,`make install`安装。在`php.ini`中添加扩展配置,重启PHP服务后,模块即可生效。
摘要由CSDN通过智能技术生成

php扩展模块装安装目录概要

/usr/local/php/bin/php -m //查看模块

下面安装一个redis的模块

cd /usr/local/src/

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文件

74861b15ae3a5568f363ae723df9c31a.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

3558e3c02a1e59545f07026ed7f81e05.png

总结

如果你想编译一个模块,而且他自带的源码包目录/usr/local/src/php-7.1.6/ext 下有,那么只需要进行以下一些步骤,就可以完成扩展模块新增

在你需要增加的拓展模块的目录下执行 /usr/local/php7/bin/phpize ,生成一个configure 文件

执行 ./configure –with-php-config=/usr/local/php7/bin/php-config 配置php-config文件

开始编译 make

编译后移动到目录 make install

修改配置文件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

然后执行/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值