这次编译仅仅只是单独编译PHP的扩展库,接下来将编译好的扩展库加入到现在运行的php中,不对现在运行的php重新编译,所以没有一点的影响。
下面我们演示安装xsl的扩展(不一定常用,仅做为一个范例)
做法一:
1.找到当前运行的php版本的源代码目录,如php-5.2.3。进入xsl扩展库目录。
$cd /home/pkgs/php-5.3.3/ext/xsl
2.调用phpize程序生成编译配置文件。
$/home/app/php5.3.3/bin/phpize
3.编译扩展库,分别执行下面的configure和make命令。
$./configure-with-php-config=/home/app/php5.3.3/bin/php-config
这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
#make成功执行后,生成的扩展库文件在当前目录的 modules子目录下,
如/home/php-5.3.3/ext/curl/modules/xsl.so
4.配置php.ini文件
#将编译好的扩展库文件复制到PHP的扩展目录下,可通过查看phpinfo信息。。
$ cp /home/pkg/php-5.3.3/ext/xsl/modules/xsl.so /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626
#在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到php安装目录/extension/no-debug-non....目录下,并添加扩展库位置。
extension_dir /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626”
extension=xsl.so
5.重启php,查看phpinfo信息,即可看到刚才添加进去的xsl扩展库。(如果有多个php-fpm进程的话,平滑重启主进程即可:kill -USR2 pid)
php安装好后,可能在初次安装时,会有些模块会有遗漏,但是我们又不想重新编译php,因为耗时是比较长的。我们可不可以在不重新编译安装php的情况下,来为php单独添加某一个模块呢?查找资料,发现还是有方法的,重点就是phpize了,于是写了这篇文章.下面我们就以单独为php加载mysqli模块为例,演示如何动态为php添加模块。
1、找到php原码安装文件
2、cd /home/php/ext/myslqi
3、运行 /usr/local/php/bin/phpize
4、/configure –with-php-config=/usr/local/php/bin/php-config
5、make &&make install
6、安装完成之后会在系统/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/这个目录下面生成mysqli.so的库文件
7、编辑php.ini文件,指定php到哪人目录读取模块
vi /usr/local/php/etc/php.ini
extension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″
extension=mysqli.so
8、重启php服务 /usr/local/php/sbin/php-fpm restart
7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在
如果步骤正确,你的人口也不差的情况下,应该这样php的动态模块加载就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)