如何在双PHP版CentOS 6中安装mcrypt?

我通过这种方法在CentOS 6.5上安装了两个并行版本的PHP

[root@host ~]# php -i | grep "PHP Version" PHP Version => 5.3.3 [root@host ~]# /opt/rh/php54/root/usr/bin/php -i | grep "PHP Version" PHP Version => 5.4.16 

安装来自

 [root@host ~]# rpm -q php php-mcrypt php-5.3.3-27.el6_5.1.x86_64 php-mcrypt-5.3.3-3.el6.x86_64 [root@host ~]# rpm -q php54 php54-mcrypt php54-1-7.el6.centos.alt.x86_64 package php54-mcrypt is not installed [root@host ~]# rpm -q libmcrypt libmcrypt-2.5.8-4.el6.art.x86_64 [root@host ~]# rpm -q libmcrypt-devel libmcrypt-devel-2.5.8-4.el6.art.x86_64 

在运行PHP 5.3.3的网站上,mcrypt可以正常工作。 我需要使运行5.4.16的站点可以使用mcrypt。 自然我试过yum install php54-mcrypt ,但是返回No package php54-mcrypt available. 。 以下回购已启用:

 asl-4.0 base epel extras scl updates virtualmin virtualmin-universal 

所以我search了一个RPM,发现了这个 。 但是如果我尝试安装这个RPM,它会尝试更新当前的PHP mcrypt,我需要继续为5.3.3上的站点运行。 我的印象是,php-mcrypt需要是一个精确的PHP版本,它不是向后兼容的。

我需要安装mcrypt for PHP 5.4.16,其中PHPZTS =“”和PHPAPI = 20100525。 我怎样才能做到这一点?

我用rpm2cpio把我发现的唯一合适的.rpm文件转换成标准输出的cpio压缩文件。

 $ rpm2cpio php-mcrypt-5.4.16-1.el6.x86_64.rpm | cpio -idmv 

然后,我将mcrypt.so mcrypt.ini复制到PHP 5.4安装的正确文件夹中。

Voilá,mcrypt现在工作!

不幸的是,php54的CentOS SCL集合不包括php54-mcrypt。

你可以把SRPM换成php-mcrypt-5.4并修改规范来改变软件包名称,安装位置等。在其他软件包中,创build你自己的软件包(检查rpmbuild )。

或者你也可以使用rcollet的仓库来替代。