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。

 

CentOS下php安装mcrypt扩展

(1)、确认你的linux没有安装mcrypt库,如果已安装,跳过安装步骤[root@test-206 ~]# yum list installed|grep mcrypt libmcrypt.x86...
  • zy112289
  • zy112289
  • 2016年10月17日 17:06
  • 5223

CentOS下php安装mcrypt扩展

本方法在本人测试服务下安装成功,Linux版本centos6.5 源码编译安装,去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装...
  • L_yangliu
  • L_yangliu
  • 2016年11月03日 09:11
  • 2924

Linux下php安装mcrypt扩展

说明: 操作系统:CentOS 5.x 64位 已安装php版本:php-5.4.4 已安装php路径:/usr/local/php 实现目的: 在不影响网站访问的情况下...
  • yuanyuan_186
  • yuanyuan_186
  • 2016年05月03日 17:53
  • 9215

Linux下php安装mcrypt扩展

说明: 操作系统:CentOS 5.x 64位 已安装php版本:php-5.4.4 已安装php路径:/usr/local/php 实现目的: 在不影响网站访问的情况下...
  • yuanyuan_186
  • yuanyuan_186
  • 2016年05月03日 17:53
  • 9215

Linux下安装加密模块mcrypt技巧(推荐用方案二)

Linux下安装加密模块mcrypt技巧(推荐用方案二)方案一安装mcrypt需要解决对libmcrypt还有mhash的依赖,所以先安装libmcrypt和mhashlibmcrypt-2.5.8....
  • hipihi_0
  • hipihi_0
  • 2011年07月19日 10:38
  • 430

CentOS6.0(32/64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程

查看CentOS版本命令:[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 6.0 (Final)一、 安装Apach...
  • u012581409
  • u012581409
  • 2014年12月21日 21:51
  • 675

php无法安装mcrypt扩展解决方法

在Linux的发行版CentOS 6.3 系统下,LAMP(Linux+Apache+Mysql+php)环境搭建好后发现PHPMyadmin提示 “无法载入mcrypt模块” 的错误感觉很不爽,...
  • DaErDuoTuTuZi
  • DaErDuoTuTuZi
  • 2015年01月11日 11:41
  • 290

LINUX下PHP扩展模块的开发和测试(原创)

LINUX下PHP扩展模块的开发和测试(原创)  作者:余超 Email:yuchao86@gmail.com 关于php的扩展模块开发,很多人都很害怕,我在新浪工作两年到现在的模块开发灵活运用,...
  • CYBEREXP2008
  • CYBEREXP2008
  • 2011年08月30日 17:21
  • 1386

Linux下php扩展模块开发

一. 生成一个简单的php extension 我们需要两个目录:php src,php bin,到网上下载一个php源码包,解压,安装。 php的解压目录记为 phpsrc(如:/hom...
  • litbamboo
  • litbamboo
  • 2011年09月27日 17:20
  • 255

在Linux下为PHP添加nosql--redis扩展模块

1.   在Linux下位redis编译准备环境: 下载支持PHP——redis的模块源代owlient-phpredis-2.1.1-1-g90ecd17.tar.gz [root@localh...
  • u010463619
  • u010463619
  • 2014年10月30日 10:40
  • 294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下解决php扩展模块mcrypt的问题
举报原因:
原因补充:

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