我通过这种方法在 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
所以我搜索了一个 RPM,并找到了这个. 但是,如果我尝试安装此 RPM,它会尝试更新当前的 PHP mcrypt,我需要在 5.3.3 上为站点继续运行它。我的印象是 php-mcrypt 需要与 php 版本完全一致,并且不向后兼容。
我需要为 PHP 5.4.16 安装 mcrypt,其中 PHPZTS="" 和 PHPAPI=20100525。我怎样才能做到这一点?
我使用rpm2cpio将我找到的唯一合适的.rpm文件转换为标准输出的 cpio 存档。
然后我将 mcrypt.so 和 mcrypt.ini 复制到 PHP 5.4 安装的正确文件夹中。
瞧,mcrypt 现在可以工作了!
不幸的是,用于 php54 的 CentOS SCL 集合不包括 php54-mcrypt。
您可以获取 php-mcrypt-5.4 的 SRPM 并修改规范以更改包名称、安装位置等。在其他情况下,创建您自己的包(检查
rpmbuild
)。或者,您也可以使用rcollet的存储库作为替代方案。