lnmp下用phpize动态安装PHP模块/扩展(不需要重装PHP)
安装前
安装前建议先执行 /usr/local/php/bin/php -m (此命令显示目前已经安装好的PHP模块)看一下,要安装的模块是否已安装。然后下载当前PHP版本的源码并解压。
本文以imap和exif模块为例,进入php源码目录下ext,里面会有大部分模块的源码。
一、安装imap模块
1、安装imap模块前需要先安装imap所需的库:
CentOS :yum install libc-client-devel
Debian:apt-get install libc-client-dev
2、首先进入php安装目录的ext目录
比如php的源码目录为:/root/lnmp0.4-full/php-5.2.10/
则执行:cd /root/lnmp0.4-full/php-5.2.10/ext/
我们要安装imap模块,执行cd imap/
再执行 /usr/local/php/bin/phpize 会返回如下信息:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
再执行以下命令:
[root@vpser imap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl
[root@vpser imap]# make && make install
执行完返回:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
表示已经成功,再修改/usr/local/php/etc/php.ini
查找:extension_dir 再下面一行添加上extension = "imap.so"
保存,执行/etc/init.d/php-fpm restart 重启。
在浏览器里面输入http://ip/p.php,打开探针,安装IMAP模块前:

安装IMAP模块后:

二、安装exif模块
安装exif不需要另外安装库,所以省略掉了安装库的步骤。
比如php的安装目录为:/root/lnmp0.4-full/php-5.2.10/
则执行:cd /root/lnmp0.4-full/php-5.2.10/ext/
我们要安装exif模块,执行cd exif/
再执行 /usr/local/php/bin/phpize 会返回如下信息:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
再执行以下命令:
[root@vpser imap]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@vpser imap]# make && make install
执行完返回:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
表示已经成功,再修改/usr/local/php/etc/php.ini
查找:extension = 再最后一个extension= 后面添加上extension = "exif.so"
保存,执行/etc/init.d/php-fpm restart 重启。
在/home/wwwroot/下面创建一个exif.php的文件,内容如下:
<?php
$exif = read_exif_data ('IMG_0001.JPG');
while(list($k,$v)=each($exif)) {
echo "$k: $v<br>\n";
}?>
其中IMG_0001.JPG为照片文件。
未安装exif模块前:

安装exif模块后:

可以读出照片的exif信息。
安装其他模块也基本上都是这两种方式,当./configure --with-php-config=/usr/local/php/bin/php-config 执行这个的时候是会检查系统上库是否安装上,如果没有安装上就会报错,按错误提示安装相关的库就行。
转载:http://www.vpser.net/manage/lnmp-php-install-ext.html
使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,别说,php还真有这样的功能。
我没有在手册中看到。
如我想增加bcmath支持,这是一个支持大整数计算的扩展。windows自带而且内置,linux“本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用”(引号内是手册中的话)
幸好有phpize,
方法是,要有与现有php完全相同的php压缩包。我用的是php-5.2.6.tar.gz。
展开后进入里面的ext/bcmath目录
然后执行/usr/local/php/bin/phpize,这是一个可执行的文本文件,要确保它在系统中
会发现当前目录下多了一些configure文件,
如果没报错,则
Php代码
./configure --with-php-config=/usr/local/php/bin/php-config
注意要先确保/usr/local/php/bin/php-config存在。
如果你的php安装路径不是默认的,要改。
如果没有报错,则make,再make install ,然后它告诉你一个目录
你把该目录下的bcmath.so拷贝到你php.ini中的extension_dir指向的目录中,
修改php.ini,在最后添加一句extension=bcmath.so
重启apache.
转载:http://www.cnblogs.com/mrcoke/articles/2351878.html
lnmp下用phpize动态安装PHP模块/扩展(不需要重装PHP)的更多相关文章
- Win7下Python2.7环境安装paramiko模块
Win7下Python2.7环境安装paramiko模块,经过安装并测试成功,整理文档如下: 1.下载安装Windows版本的Python2.7,我默认装在C:\Python27 我的python已经 ...
- Ubuntu14下LAMP环境的安装以及yaf扩展的安装
前段时间在ubuntu下安装了lamp环境,记录一下安装过程方便以后查阅. 安装lamp环境 ① 安装apache sudo apt-get install apache2 系统会弹出如图所示的提示, ...
- LNMP平滑升级nginx并安装ngx_lua模块教程
#ngx_lua module项目地址 https://github.com/chaoslawful/lua-nginx-module 在LNMP安装包后,重编译nginx,并添加ngx_lua模块 ...
- LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
FTP是网站文件维护中使用比较多的,目前LNMP一键安装包中有Pureftpd和Proftpd服务器安装脚本,LNMP默认不安装任何FTP服务器,需要用户自行安装(1.2开始不再提供proftpd的安 ...
- 在linux下查看python已经安装的模块
一.命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 python--->在交互式解释器中输入>> ...
- windows环境下无法引用全局安装的模块问题
问题 在node项目中,往往需要安装一些依赖的包,通常我们采取全局安装的方式,来减少一些包重复安装带来的烦恼. 但是全局安装后出现无法使用的情况,可能是你NODE_PATH没有设置或者不正确造成的. ...
- mac下使用opencv编译安装新模块contrib
opencv-4.0.1 opencv_contrib-4.0.1 提供ippicv下载链接: https://pan.baidu.com/s/1OIJRUqPqAtpMetku8qX36w cont ...
- linux使用php动态安装模块mysqli.so(ext/mysqlnd/mysqlnd.h: 没有那个文件或目录)
由于我先安装的php,再安装的mysql! 正常过程: 1.安装mysql 2.安装php configure时带–with-mysql参数 现在我不想重装,因此使用phpize动态安装mysqli, ...
- CentOS 7.4下源码编译安装配置LAMP环境详解
CentOS 7.4搭建LAMP,LAMP:Linux.Apache.MySQL.PHP. 目录:第一部分 准备工作第二部分 安装Apache服务第三部分 安装MySQL服务第四部分 搭建PHP运行环 ...
随机推荐
- IOS 按比例裁剪图片
拍照或者从图片库中获取图片 操作过程中容易闪退,也总会有内存压力警告,第一步,首先可以考虑裁剪图片,实际上可能不需要那么大的.其次可以考虑把耗时的比如存储过程放进线程. 这里封装裁剪图片的类方法. / ...
- iOS (catagroy)类别
1:可以为类添加新的方法,但不能添加实例变量. 2:第一,无法向类中添加新的实例变量.类别没有位置容纳实例变量. 第二,名称冲突,即类别中的方法与现有的方法重名.当发生名称冲突时,类别具有更高的优先级 ...
- 【Android 界面效果12】EditText中的多行输入问题
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 我们在使用EditText进行多行输入的时候,通常的写法如下: <EditText android ...
- Unity封装dll教程整理
///作者Unity3d师兄---LeroyYang 通过网上大神们的资料以及自己的整理,学习一下用vs2013简单的封装dll文件,方便接口模式下开发,使得逻辑层更为清晰. 操作步骤 1.打开vs2 ...
- iOS 真机测试的一些报错
1.连了手机热点 fix Issue后出现提示框:No Devices Registered:Creating a provisioning profile requires one or more ...
- 如何让oracle的select强制走索
大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有糊涂的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引. (注意:走索引不一定是最优的 ...
- nginx lua mysql redis设置
最近公司网站改版,程序和数据库全部用新版,旧版的数据要导入,旧网站的30万条数据url要全部重定向到新版网站,正好前段时间在学习nginx+lua+mysql+memcache(redis),找资料真 ...
- hdu-5690 All X(快速幂+乘法逆元)
题目链接: All X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Pro ...
- Javascript -- toFixed()函数
Javascript——toFiexed()函数 1. toFixed(n) 限制小数点后位数,四舍五入.n:0~20 . 2. 作用对象必须是number,不能为其他类型.如(8.001).toFi ...
- 抽奖随机算法的技术探讨与C#实现
一.模拟客户需求 1.1 客户A需求:要求每次都按照下图的概率随机,数量不限,每个用户只能抽一次,抽奖结果的分布与抽奖概率近似. 1.2 客户B需求:固定奖项10个,抽奖次数不限,每个用户只能抽一次, ...