zoukankan      html  css  js  c++  java
  • CentOS下php安装mcrypt扩展

    本文实际上是在CentOS下进行的,原理和在Ubuntu下源码安装一样,下图首先示例mcrypt和php的依赖关系


    基本原理是:首先使mcrypt软件能够运行,然后安装php扩展模块,并在php.ini配置。

    这里注意的是mcrypt软件依赖libmcrypt和mhash两个库,所以安装配置顺序从右至左

    I 下载安装mcrypt

    1.先去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装包 ,下面是我找到的链接

       Libmcrypt(libmcrypt-2.5.8.tar.gz ):http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/

       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

       说明:libmcrypt默认安装在/usr/local

    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

       export LD_LIBRARY_PATH=/usr/local/lib

       ./configure

       make

       make install

    如果在Mac下不必 export LD_LIBRARY_PATH=/usr/local/lib,但是make时有错误:rfc2440.c:26:20: error: malloc.h: No such file or directory,执行touch malloc.h, 重新make/make install即可

       说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库默认在/usr/local/lib文件夹下。因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local/lib 导入键接库

    (在 Mac OS下测试不需要LD_LIBRARY_PATH,配置时说明: ./configure CFLAGS="-I/usr/include/malloc -L/usr/local/lib"才可以)

    II. 安装PHP扩展模块

    接着就要为PHP添加mcrypt模块了

    1. 静态编译

    在任意PHP文件中加入函数 phpinfo(),即可取得目前PHP的配置
    在这些配置后面新增需要加入的配置:--with-mcrypt --with-mhash 

    然后进入php源代码目录make clean ,然后执行这条完整的configure命令,依次
    make
    make install

    2. 动态加载


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

    要有与现有php完全相同的php压缩包 。我用的是php-5.2.6.tar.gz。 展开后进入里面的ext/mcrypt目录 (里面是mcrypt的php扩展),然后执行/usr/bin/phpize。phpize是安装php时安装好的一个工具,如果你的机器没有安装phpize工具,那么可能还是要make,make install php,仅仅为了得到phpize.

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

       

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

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

        make

        make install

    Php代码  收藏代码
    1. ./configure --with-php-config=/usr/bin/php-config 

    make install 之后系统会提示你mcrypt.so文件所在的目录。根据php.ini中指示的extension_dir指向的目录中, 将其复制过去。修改php.ini,在最后添加一句extension=mcrypt.so

    最后重启APACHE服务,万事OK。

  • 相关阅读:
    Nginx 禁止IP访问
    Nginx服务优化详解
    adb不响应
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)
    内存泄露情况
    AndroidManifest笔记
    RecyclerView设置verticalSapcing等
    Fragment回调顺序及getActivity()为NullPointerException解决方法
    git tag
  • 原文地址:https://www.cnblogs.com/cnsanshao/p/3493204.html
Copyright © 2011-2022 走看看