Linux下安装加密模块mcrypt技巧
方案一
安装mcrypt需要解决对libmcrypt还有mhash的依赖,所以先安装libmcrypt和mhash
libmcrypt-2.5.8.tar.gz
下载地址:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459
mhash-0.9.9.tar.gz
下载地址:http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636
mcrypt-2.6.8.tar.gz
下载地址:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101
# tar -xvf libmcrypt-X.X.X.tar
# cd libmcrypt-X.X.X
# ./configure
现在你应该已经把libmcrypt作为一个共享组件了(但不是一个PHP的共享组件)
运行命令:
# ldconfig
它将使得共享对象可以在C/C++开发中被使用。下面把mcrypt动态组件编译到PHP中。首先,你需要PHP-devel 包中包含的 'phpize‘ 命令。
当你当前运行的PHP中已经有了 PHP-devel 后,输入:
# cd ext/mcrypt
# phpize
# aclocal
# ./configure
# make clean
# make
# make install
现在php的安装目录下面应该有了mcrypt.so 的文件,在 /etc/php.ini 添加:
extension=mcrypt.so
然后重启一下apache,这样我们就已经将mcrypt功能安装成功了。
特别注意:
1、phpize需在解压后的源码包下执行,执行后生成configure脚本
2、运行./configure时,如果提示
configure: error: Cannot find php-config. Please use --with-php-config=PATH
请使用:
./configure --with-php-config=/php-install-path/bin/php-config #而不是使用php.ini
安装方案二(推荐用方案二)
1.先安装Libmcrypt
#tar -zxvf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make
#make install
说明:libmcript默认安装在/usr/local
2.安装mhash
#tar -zxvf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure
#make
#make install
3.安装mcrypt
#tar -zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8
#LD_LIBRARY_PATH=/usr/local/lib ./configure
#make
#make install
4. 网上很多都说要重新编译 php,比如‘方案一‘
特别是make,时间太久有容易出错
在mcrypt的php官方安装帮助里面找到答案
You can install Mcrypt from the PHP Source Tree as a module if you choose.
You first need to ensure you have libmcrypt, libmcrypt-devel, and mcrypt installed, then do:
说明:此步之前确保php目录下有mcrypt目录,确保mcrypt下有phpize和aclocal文件。本人安装几次后才安装好,执行命令的时候确保相对目录有相对的文件
# cd php-5.x.x/ext/mcrypt
# phpize
# aclocal
# ./configure
# make && make install
Enable the module by adding: 'extension=mcrypt.so' to PHP.ini.
发现在Php 的编译包里面有这些扩展,phpize命令就是专门给Php扩展用的,免去了重新给Php编译的麻烦
具体操作:
1).要有与现有php完全相同的php压缩包 ,展开后进入里面的ext/mcrypt目录 (里面是mcrypt的php扩展)
#cd /usr/local/php-x.x.x/ext/mcrypt
2).执行/usr/local/php5/bin/phpize
#/usr/local/php5/bin/phpize
3).编译安装
执行完后,会发现当前目录下多了一些configure文件,如果没报错,则根据提示运行
注意要先确保/usr/local/php5/bin/php-config存在(如果是默认编译php包的话–with-php-config可以省略,会自动找到)。
一定要到目录下去看一下这个文件是否存在,安全第一!!!
执行:
./configure -with-php-config=/usr/local/php5/bin/php-config
make
make install
会出现一些信息,给你一些安装后的信息,mcrypt.so的目录记下来下面有用到
4). 拷贝mcrypt.so文件
make install 之后系统会提示你mcrypt.so文件所在的目录
#cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090613/mcrypt.so /usr/local/php5/lib/php/extensions/
5).配置php.ini
#vi /usr/local/lib/php.ini
先找到extension_dir = "/usr/local/php/lib/php/extensions/"看下后面是否有mcrypt.so后缀,编译的时候会自动写进php.ini
没有的话就执行下面操作
修改php.ini
配置extension_dir = "/usr/local/php/lib/php/extensions/"
在最后添加一句extension=mcrypt.so
变成:extension_dir = "/usr/local/php5/lib/php/extensions/mcrypt.so"
5.重启apache和mysql