一聚教程网:一个值得你收藏的教程网站

热门教程

Linux环境 php mcrypt扩展完全安装笔记

时间:2022-06-24 16:19:11 编辑:袖梨 来源:一聚教程网

如果你的php站点  /var/log/httpd/error_log  中报如下错误:

PHP Fatal error:  Call to undefined function mcrypt_get_block_size() in /var/www/html/miniblog/system/classes/class_DES.php on line 40

心想必是 mcrypt没有安装

安装步骤如下:

1.查看当前  php 版本  #php -version

2.如果当前linux 中有php的源码包最好,如果没有源码包,需要去下载一个原码包,上传到服务器解压

3.确认是否已安装libmcrypt
   ldconfig -p | grep libmcrypt

  如果没有安装:
  下载地址:http://sourceforge.net/projects/mcrypt
  可以同时下载libmcrypt 和 mcrypt
  先安装libmcrypt, 默认安装目录为 /usr/local , PHP 手册建议?disable-posix-threads ,不知何故
  ./configure && make && make install
  ldconfig

  再安装mcrypt, 默认安装目录为 /usr/local
  ./configure ?with-libmcrypt-prefix=/usr/local

4. 确认是否已安装mhash
   ldconfig -p | grep mhash

   如果没有安装:
   下载地址:http://mhash.sourceforge.net/
   ./configure && make && make install
    ldconfig

5.进入源码目录,安装mcrypt模块,这一步会生成一个mcrypt.so文件
   cd php-x.x.x/ext/mcrypt
   ./configure ?with-mcrypt=/usr/local/ && make && make install

6.在/etc/php.ini最后面加上一行:extension=/usr/lib/php/modules/mcrypt.so

7.重启php    #service httpd restart


在linux下为php安装mcrypt模块

一上班,就收到研发提出网站出现“Call to undefined function mcrypt_create_iv()”
上网查下是没有安装mcrypt模块。
搜索一下,网上大多方法都是安装mcrypt模块要重新编译php,可我的系统在线运行着,不方便编译。
以下是我的处理过程:
环境:rhel 5 +php5.3,已有yum
 
#yum -y install libmcrypt libmcrypt-devel php-mcrypt php-mbstring
 
查找相关文件
#updatedb
#locate mcrypt.so
/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
 
#locate libmcrypt
/usr/local/bin/libmcrypt-config
/usr/local/lib/libmcrypt
/usr/local/lib/libmcrypt.la
/usr/local/lib/libmcrypt.so
/usr/local/lib/libmcrypt.so.4
/usr/local/lib/libmcrypt.so.4.4.8
 
有了这两个资料,就可以在php.ini上增加mcrypt模块
 
 
#locate php.ini
/usr/local/php5/lib/php.ini
 
#vi /usr/local/php5/lib/php.ini
增加两行
extension=mcrypt.so
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.modes_dir=
mcrypt.modes_dir=/usr/local/lib/
:wq  保存退出
 
要重启apache

热门栏目