zoukankan      html  css  js  c++  java
  • 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> ";
    }

    ?>

    其中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

     

     

  • 相关阅读:
    nginx的高级用法
    在windowsXP中如何配置php环境
    .net面试问答
    GridView的其他用法小总结
    php ajax 中文乱码问题解决办法(接收发送)
    SQL时间函数DateAdd的用法
    GridView选中,编辑,取消,删除
    php如何获取复选框选中的值
    C# 中对xml文件的操作
    将分享按钮加入到页面中
  • 原文地址:https://www.cnblogs.com/wawahaha/p/4937772.html
Copyright © 2011-2022 走看看