安装前

安装前建议先执行 /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)的更多相关文章

  1. Win7下Python2.7环境安装paramiko模块

    Win7下Python2.7环境安装paramiko模块,经过安装并测试成功,整理文档如下: 1.下载安装Windows版本的Python2.7,我默认装在C:\Python27 我的python已经 ...

  2. Ubuntu14下LAMP环境的安装以及yaf扩展的安装

    前段时间在ubuntu下安装了lamp环境,记录一下安装过程方便以后查阅. 安装lamp环境 ① 安装apache sudo apt-get install apache2 系统会弹出如图所示的提示, ...

  3. LNMP平滑升级nginx并安装ngx_lua模块教程

    #ngx_lua module项目地址 https://github.com/chaoslawful/lua-nginx-module 在LNMP安装包后,重编译nginx,并添加ngx_lua模块 ...

  4. LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)

    FTP是网站文件维护中使用比较多的,目前LNMP一键安装包中有Pureftpd和Proftpd服务器安装脚本,LNMP默认不安装任何FTP服务器,需要用户自行安装(1.2开始不再提供proftpd的安 ...

  5. 在linux下查看python已经安装的模块

    一.命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 python--->在交互式解释器中输入>> ...

  6. windows环境下无法引用全局安装的模块问题

    问题 在node项目中,往往需要安装一些依赖的包,通常我们采取全局安装的方式,来减少一些包重复安装带来的烦恼. 但是全局安装后出现无法使用的情况,可能是你NODE_PATH没有设置或者不正确造成的. ...

  7. mac下使用opencv编译安装新模块contrib

    opencv-4.0.1 opencv_contrib-4.0.1 提供ippicv下载链接: https://pan.baidu.com/s/1OIJRUqPqAtpMetku8qX36w cont ...

  8. linux使用php动态安装模块mysqli.so(ext/mysqlnd/mysqlnd.h: 没有那个文件或目录)

    由于我先安装的php,再安装的mysql! 正常过程: 1.安装mysql 2.安装php configure时带–with-mysql参数 现在我不想重装,因此使用phpize动态安装mysqli, ...

  9. CentOS 7.4下源码编译安装配置LAMP环境详解

    CentOS 7.4搭建LAMP,LAMP:Linux.Apache.MySQL.PHP. 目录:第一部分 准备工作第二部分 安装Apache服务第三部分 安装MySQL服务第四部分 搭建PHP运行环 ...

随机推荐

  1. IOS 按比例裁剪图片

    拍照或者从图片库中获取图片 操作过程中容易闪退,也总会有内存压力警告,第一步,首先可以考虑裁剪图片,实际上可能不需要那么大的.其次可以考虑把耗时的比如存储过程放进线程. 这里封装裁剪图片的类方法. / ...

  2. iOS (catagroy)类别

    1:可以为类添加新的方法,但不能添加实例变量. 2:第一,无法向类中添加新的实例变量.类别没有位置容纳实例变量. 第二,名称冲突,即类别中的方法与现有的方法重名.当发生名称冲突时,类别具有更高的优先级 ...

  3. 【Android 界面效果12】EditText中的多行输入问题

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 我们在使用EditText进行多行输入的时候,通常的写法如下: <EditText android ...

  4. Unity封装dll教程整理

    ///作者Unity3d师兄---LeroyYang 通过网上大神们的资料以及自己的整理,学习一下用vs2013简单的封装dll文件,方便接口模式下开发,使得逻辑层更为清晰. 操作步骤 1.打开vs2 ...

  5. iOS 真机测试的一些报错

    1.连了手机热点 fix Issue后出现提示框:No Devices Registered:Creating a provisioning profile requires one or more ...

  6. 如何让oracle的select强制走索

    大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有糊涂的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引. (注意:走索引不一定是最优的 ...

  7. nginx lua mysql redis设置

    最近公司网站改版,程序和数据库全部用新版,旧版的数据要导入,旧网站的30万条数据url要全部重定向到新版网站,正好前段时间在学习nginx+lua+mysql+memcache(redis),找资料真 ...

  8. hdu-5690 All X(快速幂+乘法逆元)

    题目链接: All X Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Pro ...

  9. Javascript -- toFixed()函数

    Javascript——toFiexed()函数 1. toFixed(n) 限制小数点后位数,四舍五入.n:0~20 . 2. 作用对象必须是number,不能为其他类型.如(8.001).toFi ...

  10. 抽奖随机算法的技术探讨与C#实现

    一.模拟客户需求 1.1 客户A需求:要求每次都按照下图的概率随机,数量不限,每个用户只能抽一次,抽奖结果的分布与抽奖概率近似. 1.2 客户B需求:固定奖项10个,抽奖次数不限,每个用户只能抽一次, ...