在Linux的发行版CentOS 6.3 系统下,LAMP(Linux+Apache+Mysql+php)环境搭建好后发现PHPMyadmin提示“无法载入mcrypt模块”的错误,尝试使用yum安装提示找不到模块。如下为执行过程:
yum install php-mcrypt Setting up Install Process No package php-mcrypt available. Error: Nothing to do
原来CentOS官方默认不对mcrypt模块进行支持,所以使用Fedora的扩展库,EPEL (Extra Packages for Enterprise Linux)来安装。RHEL是Redhat的企业版,Fedora是Redhat的桌面版,CentOS是拿Redhat的源码由社区自己编译的免费版,所以Cent是可以使用Fedora的软件的。
打开网址:http://mirrors.sohu.com/fedora-epel/6/i386/,使用 Ctrl+F 搜索关键词“epel-release”找到当前最新的扩展包发现最新版本为:epel-release-6-8.noarch.rpm,然后执行命令:
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
清除原有的yum信息
yum clean all
查看是否已经有了EPEL(Extra Packages for Enterprise Linux)扩展包,执行命令:
yum repolist|grep epel
输出下面类似的结果就为添加成功:
epel Extra Packages for Enterprise Linux 6 - x86_64 8,986+1,907
执行命令,安装mcrypt扩展包:
yum install php-mcrypt
重启apache是扩展生效,执行命令:
service httpd restart
然后我这台机器的情况不太一样,安装的是nginx,是还有错误提示,
查看phpinfo,发现已经载入了/etc/php.d/mcrypt.ini,
而/etc/php.d/mcrypt.ini中没有指定路径,仅指定了extension=”/mcrypt.so”,
可能因为mcrypt.so是自己安装的所以路径不对,
用下面的命令:
find -name mcrypt.so
找到正确的路径在/usr/lib64/php/modules/mcrypt.so,
修改/etc/php.d/mcrypt.ini中的路径extension=”/usr/lib64/php/modules/mcrypt.so”
重启php,重启nginx。
EOF