在装好php后,或者在使用php的时候,发现某个模块没有添加,而又不想重新编译安装,这时就需要单独添加扩展模块。
php环境说明:
安装路径:/data/php5.6/
解压路径:/data/php-5.6.38/
系统:ubuntu
1.php的启动和关闭
#/data/php5.6/sbin/php-fpm
#PID=`ps -ef | grep php | grep master | awk '{print $2}'`
#kill -s QUIT ${PID}
2.查看已装好的模块
#/data/php5.6/sbin/php-fpm -m
3.首先进入php解压后源目录下ext目录
4.这里举例添加一个bz2模块,进入ext下的bz2目录里,可以看到其目录下并无可执行文件configure
5.进入模块目录下后,执行phpize命令,为其生成用来编译的一些文件
若是首次添加模块,可能会报缺少autoconf的错,只需要执行 apt-get install autoconf 安装即可
6.在当前目录下执行configure
# ./configure --with-php-config=/data/php5.6/bin/php-config
但是报错
7.没有安装bzip2和bzip2-devel,接着apt执行安装
但是竟然说找不到bzip2-devel这个软件包
网上搜了一下,bzip2在Ubuntu里面真正的包名是libbz2-dev,就直接安装这个了
8.接着再一次执行configure,若无error字眼,那就执行make和install
#make
#make install
这个目录很关键,大概就是存放扩展的模块文件的地方
9.修改php.ini文件(此步不正确)
#vi /data/php5.6/php.ini
其中,去掉扩展模块的注释,将extension=php_bz2.dll前的;去掉
10.重启php,但是启动的时候竟然报错
报错是说在某个目录下的某个文件,不能打开,是找不到文件。这个目录就是存放扩展模块文件的目录(A),,这文件名是刚才php.ini里配置的,那意思就是在php.ini里extension的模块名要在(A)目录里面存在,而bz2模块在(A)目录里的文件名是bz2.so
11.再次重回php.ini修改
启动php成功,再次查询已装模块