Linux下解决php扩展模块mcrypt的问题

原创 2012年03月29日 20:45:52

本文记录并更正了一些流传甚广的网文在解决此问题时的不足与错漏之处。供以后参考。

  Ubuntu上出现此类问题,安装php5-mcrypt包即可

1
$ sudo apt-get install php5-mcrypt

  安装完成后重启apache

1
$ sudo /etc/init.d/apache2 restart

  以下着重介绍在Redhat上的解决方案。

  当在编译php源码时忘记加入对mcrypt的扩展支持,就会出现此错误。该错误不大不小,但解决起来却很头疼。最直接的方法就是重新编译源码,然而直接却并不代表简单,简单也不能代表优雅。“在任何情况下都重装系统”也毕竟不是长久之计,久而久之,反而有可能会降低自己解决问题的能力。

  网上有资料显示,解决此问题需要三个包。

  libmcrypt-2.5.8.tar.gz  

    URL:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459

  mhash-0.9.9.tar.gz

           URL:http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636

  mcrypt-2.6.8.tar.gz

    URL:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101

注意:

  1. 先安装libmcrypt和mhash,两者之间没有依赖关系。而mcrypt需要依赖二者。

  2. 在解压mcrypt后,configure时,需要指定libmcrypt和mhash的安装目录。流传的网文在此步骤上多少都有点不完整。不过在configure失败时,只需要认真的阅读configure失败提示,以及使用./configure --help命令就可解决问题。例如下面错误信息:

1
2
3
4
5
6
7
8
checking for libmcrypt-config... no
checking for libmcrypt - version >= 2.5.0... no
*** Could not run libmcrypt test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means LIBMCRYPT was incorrectly installed
*** or that you have moved LIBMCRYPT since it was installed. In the latter case, you
*** may want to edit the libmcrypt-config script: noconfigure: error:
*** libmcrypt was not found

  错误提示没有找到libmcrypt-config文件,估计是没有找到libmcrypt安装目录。由于之前我们已经明确安装了,因此肯定是在configure时需要指定参数。通过./configure --help查看以及多方试探,最终确定参数如下。

1
2
3
4
# LD_LIBRARY_PATH=A:B ./configure --with-libmcrypt-prefix=C
A:  libmcrypt的lib目录,会解析成"A/lib"
B:  mhash的lib目录,会解析成"B/lib"
C: libmcrypt的安装目录,会解析成"C/bin/libmcrypt-config"。注意C最后不要加反斜杠"/"

  如果自己在安装libmcrypt和mhash时,指定了--prefix,则bin,include,share以及lib目录都会放置到自己指定的目录下。如果没有指定,默认情况下,bin目录下的文件放到 /usr/local/bin下,lib目录下的文件放置到/usr/local/lib下,bin同理放到/usr/local/bin下。

以我的Redhat5.x为例:libmcrypt安装到/usr/local/libmcrypt目录下,而mhash是默认安装的。

1
# LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt

  三个文件都顺利安装之后,需要生成mcrypt.so扩展包。步骤如下:

  1、首先要先进入php的解压目录,进入ext/mcrypt这个目录。

  2、运行phpize,这个是负责调用外部安装相关操作的。

1
2
3
4
5
#  cd /home/install/php-5.2.6/ext/mcrypt
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config 和一些其他参数,具体是什么,我也忘记了。可以根据上文提到的办法解决。即认真看失败记录,以及--hellp选项。
#make
#make install

  最后把这个mcrypt.so文件直接扔到php的extensions目录下,然后和在php.ini中加上这项extensions。

 

相关文章推荐

Linux下php安装mcrypt扩展

说明: 操作系统:CentOS 5.x 64位 已安装php版本:php-5.4.4 已安装php路径:/usr/local/php 实现目的: 在不影响网站访问的情况下...

编译mcrypt可能会报错:configure: error: *** libmcrypt was not found

安装到mcrypt的时候出现了问题 ./configure 提示出错,首先提示 *** Could not run libmcrypt test program, checking why… ...

configure: error: *** libmcrypt was not found解决方案

其实已经安装过libmcrypt了。依然报错。 解决方法如下:

PHP安装Mcrypt扩展

在使用PHP开发的过程中,为了提供数据传输的安全性,避免不了使用加密函数,除了使用php本身自带的几个函数,php还提供Mhash和Mcrypt2个扩展库。Mcrypt扩展库支撑的加密算法可以看htt...

CentOS下php安装mcrypt扩展

(1)、确认你的linux没有安装mcrypt库,如果已安装,跳过安装步骤[root@test-206 ~]# yum list installed|grep mcrypt libmcrypt.x86...

CentOS 5.4安装 libmcrypt 2.5.8 错误及其解决方案记录

错误代码:checking for libmcrypt – version >= 2.5.0…*** ‘libmcrypt-config –version’ returned 2.4.0, but L...

PHP安装mcrypt.so报错 mcrypt.h not found 的解决办法

报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt 网上搜索了很多,包括自带的 yum install lib...
  • default7
  • default7
  • 2014年06月19日 09:39
  • 41651

CentOS下php安装mcrypt扩展

本方法在本人测试服务下安装成功,Linux版本centos6.5 源码编译安装,去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装...

yum源安装php报错缺少libmcrypt.so.4()(64bit)库

原始出处:http://51network.blog.51cto.com/864602/1434360 今天yum安装php-fpm(自己公司做的rpm包和源)报错 报错信息如下: ...

libmcrypt-config script: noconfigure: error: libmcrypt was not found

本文记录并更正了一些流传甚广的网文在解决此问题时的不足与错漏之处。供以后参考。   Ubuntu上出现此类问题,安装php5-mcrypt包即可 ? 1 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下解决php扩展模块mcrypt的问题
举报原因:
原因补充:

(最多只允许输入30个字)