Linux下为已编译安装的PHP安装一个新模块

我们可能经常会遇到这样的问题,就是花了比较长的时间把php环境安装完之后发现有一个必须的模块忘记加到配置里面,或者在经过一段时间之后发现自己需要用到php的某个模块或外挂模块,这时候总不可能把已经安装好的php卸载了重新安装在安装时将模块配置进去吧?这样感觉很傻的样子。之前我就遇到这样的问题,在朋友的怂恿下还真的把php卸载了重新安装过【囧】...然而事实上并不用这样,我们可以在原来的基础上进行模块添加的。

有童鞋可能会发现php安装目录中 /usr/local/php/bin 下存在 phpize 这样一个可执行文件,它就跟安装php模块有关,那么 phpize是什么呢?

php官方的说明:http://php.net/manual/en/install.pecl.phpize.php
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。比如你想在原来编译好的php中加入memcache或者ImageMagick等扩展模块,可以使用phpize,通过以下几步进行操作。(下面以安装memcache为例)

1. 首先确定该扩展是否为php源码中已经集成的,具体可以进入源码包对应目录如 /tmp/php-5.6.15/ext 中查找

# cd /tmp/php-5.6.15/ext

# ll | grep memcache

若存在,则可以使用源码直接安装,否则下载源码包进行安装

# wget http://pecl.php.net/get/memcache-2.2.7.tgz

# tar -zxf memcache-2.2.7.tgz

(注意:我们安装的是php的memcache模块,而不是memcached程序,实际要使memcache模块生效,还需要安装memcached程序)

2. 进入安装包中,执行phpize,产生configure可执行文件

# cd [目录]/memcache

# phpize (或/usr/local/php/bin/phpize

3. 运行可执行文件 configure

# ./configure --with-php-config=/usr/local/php/bin/php-config

4. make 安装

# make

# make install

执行上述步骤后显示 :Installing shared extensions:  /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ ,说明memcache扩展已经安装到上述目录下了,进入查看,确实已经存在了

5. 最后一步是修改php.ini配置文件使新模块生效

# vi /usr/local/php/etc/php.ini

在 Dynamic Extensions(动态扩展) 那部分下面添加 extension=memcache.so,保存后退出,重启php

运行php命令查看memcache模块是否加载成功

# php -m

若出现memcache 则模块成功安装。


注:当安装php外挂扩展时,上面的第三步可能会出现如下的错误:

Cannot find config.m4. 
Make sure that you run '/usr/local/php-5.6.15/bin/phpize' in the top level source directory of the module

检查下是否已经进入你所要安装的扩展目录。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值