当在编译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需要依赖二者。
安装libmcrypt
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure ----prefix=/usr/local/mcrypt
make
make install
安装mhash
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure ----prefix=/usr/local/mcrypt
make
make install
安装mcrypt
在安装mcrypt前,需先导入环境变量,不然在安装的时候会提示找不到libmcrypt和mhash
export LD_LIBRARY_PATH=/usr/local/mcrypt/lib:$LD_LIBRARY_PATH
export LDFLAGS="-L/usr/local/mcrypt/lib/ -I/usr/local/mcrypt/include/"
export CFLAGS="-I/usr/local/mcrypt/include/"
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8.
./configure --prefix=/usr/local/mcrypt --with-libmcrypt-prefix=/usr/local/mcrypt/
make
make install
添加php的mcrypt的扩展支持
进入php源码目录
cd php-5.2.9/ext/mcrypt
/usr/local/php5-cgi/bin/phpize
./configure --with-php-config=/usr/local/php5-cgi/bin/php-config --with-mcrypt=/usr/local/mcrypt
make
make install
完成后将在php安装目录下lib/php/extensions/no-debug-non-zts-20060613/产生mcrypt.so文件.
编辑php.ini
添加extension=mcrypt.so
重启apche完成添加. .
TAG: PHP5 mcrypt扩展