1.编译安装
①http://pecl.php.net/ 在php官方扩展的网站下 搜索相关的扩展(windows下要注意版本和系统位数以及是否是线程安全)
②解压扩展包(tar -zxvf 扩展包名 )
③生成configure文件 (进入解压目录,执行:php安装路径/bin/phpize ,一般是/usr/local/php/bin/phpize)
④编译生成.so文件 (./configure --with-php-config=/usr/local/php/bin/php-config)PS:有一些扩展在编译的过程中还需依赖其他的包,则需要加上相应的参数(对应库的位置),不过这样可能还会报一些依赖的错误,你如果觉得烦,则可以使用pecl 方式安装。
⑤编辑php.ini 文件 添加相应的扩展(如:extension=redis.so),重启php-fpm。
PS:其实很多扩展在php源码包中已经包含,不需要额外去下载,而且源码包中的扩展版本是完全匹配当前php版本的,例如在php7.2.6 中有以下扩展(基本包含了常用扩展):
bcmath
bz2
calendar
com_dotnet
ctype
curl
date
dba
dom
enchant
exif
ext_skel
ext_skel_win32.php
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
interbase
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
oci8
odbc
opcache
openssl
pcntl
pcre
pdo
pdo_dblib
pdo_firebird
pdo_mysql
pdo_oci
pdo_odbc
pdo_pgsql
pdo_sqlite
pgsql
phar
posix
pspell
readline
recode
reflection
session
shmop
simplexml
skeleton
snmp
soap
sockets
sodium
spl
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zend_test
zip
zlib
如果没有装openssl的扩展,通过pecl方式去安装扩展还是会报错的:
通过源码包安装扩展的方法:
①进入源码包
cd /usr/source/php-7.2.6/ext/openssl/
②执行phpize
/usr/local/php/bin/phpize
有可能出现:Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
解决方法:cp ./config0.m4 ./config.m4
③configure
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
标红的为扩展名称
④make
⑤make install
⑥编辑php.ini文件 打开或新增扩展 ,linux下为xxxx.so
⑦重启php-fpm
2.pecl 方式安装
①先检查/usr/local/php/bin/ 下面有没有 pecl (确定一下是php安装目录下的pecl,whereis pecl 查看系统中pecl的位置),pear(安装php-pear是为了使用pecl 中的 phpize)如果没有,则用yum安装(yum install php-pear php-devel)
②更新一下pecl库 pecl channel-update pecl.php.net
③安装相应的扩展 pecl install redis (如果没把php的路径加入环境变量,则需要用绝对地址)
④一般通过pecl安装的扩展都自动加入php.ini的配置了,如果通过phpinfo() 或者php-m没有查询到安装的扩展,则把相应的so文件加入到php.ini中(extension=redis.so)再重启php-fpm
⑤ 卸载扩展 pecl uninstall [对应的扩展]