zoukankan      html  css  js  c++  java
  • CentOS php添加mcrypt扩展

    PHP与mcrypt模块的关系如下图:

    mycrypt

    为php安装mcrypt扩展模块的步骤为:

    1、安装libmcrypt

    2、安装mhash

    3、安装mcrypt

    4、安装php的扩展模块mcrypt

    安装步骤:

    1、下载libmcrypt,mhash,mcrypt

    Libmcrypt(libmcrypt-2.5.8.tar.gz ):http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459

    mcrypt(mcrypt-2.6.8.tar.gz ):http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101

    mhash(mhash-0.9.9.9.tar.gz ):http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636

    2、安装libmcrypt

    tar -zxvf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure
    make
    make install
    
    #说明:libmcript默认安装在/usr/local/lib
    

    3、安装mhash

    tar -zxvf mhash-0.9.9.9.tar.gz
    cd mhash-0.9.9.9
    ./configure
    make
    make install
    

    4、安装mcrypt

    tar -zxvf mcrypt-2.6.8.tar.gz
    cd mcrypt-2.6.8
    LD_LIBRARY_PATH=/usr/local/lib ./configure
    make
    make install
    
    #说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译
    #因为Libmcrypt的链接库在/usr/local/lib/文件夹 下。
    #因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local/lib导入键接库
    

    5、php安装mcrypt模块

    (两种方法,任选其一,如果已经安装php则使用第二种)

    (1)、静态编译

    在任意PHP文件中加入函数 phpinfo(),即可取得目前PHP的配置
    在这些配置后面新增需要加入的配置:’–with-mcrypt=/usr/local/include’
    然后进入php源代码目录,执行这条完整的configure命令

    配置完成,下面进行源码包的制作和安装

    make clean (一定需要)
    make
    make install

    (2)、动态加载

    使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,于是可以采 用phpize。

    方法是:

    查看php版本

    php -v

    下载与现有php完全相同的php压缩包 (https://github.com/php/php-src/branches)

    展开后进入里面的ext/mcrypt目录 (里面是mcrypt的php扩展),然 后执行/usr/local/php/bin/phpize。

    (

    phpize安装:

    (1)make,make install php;

    (2)phpize是属于php-devel的内容:

    yum install php-devel;

    )

    执行完后,会发现当前目录下多了一些configure文件, 如果没报错,则根据提示运行

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

    注意要先确保/usr/local/php/bin/php-config存在。

    make
    make install
    

    make install 之后系统会提示你mcrypt.so文件所在的目录。

    根据php.ini中指示的extension_dir指向的目录中, 将其复制过去(或把=后面的路径改为make install结果提示的那个路径 如:/usr/local/services/php-5.3.5/lib/php/extensions/no-debug-non-zts- 20090626/)。修改php.ini,在最后添加一句extension=mcrypt.so
    最后重启apache服务。

    注意:在动态加载过程make install中可能遇到报错mcrypt.c:283: error: ‘PHP_FE_END’ undeclared here (not in a function)

    解决:

    源代码有错误,进入php-5.3.22目录

    sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.c
    sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./ext/**/*.c

    再编译安装,一切正常了

    参考:

    [1] CentOS php添加mcrypt扩展 .http://blog.chinaunix.net/uid-20788275-id-1841853.html
    [2] centos下配置php扩展 .http://blog.czlsgz.com/user1/metalfans/archives/2012/201242716259.html

    [3] phpize的安装 .http://blog.163.com/loveyangmao@126/blog/static/696741432010626140157/

    知识共享许可协议
    作品Tim Zhang创作,采用知识共享署名 3.0 中国大陆许可协议进行许可。 。
  • 相关阅读:
    Java 执行
    Java 反射
    Mysql 日常
    Java 引用
    Mysql insert on update
    Java Mail 异常
    HDU_5456_数位dp
    HDU_4734_数位dp
    POJ_1221_DP
    POJ_1050_最大子矩阵
  • 原文地址:https://www.cnblogs.com/ccdc/p/3030246.html
Copyright © 2011-2022 走看看