如果你的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