Назад | Перейти на главную страницу

Как установить mcrypt в двойной версии PHP CentOS 6?

У меня две параллельные версии PHP, установленные на CentOS 6.5 через этот метод

[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 работает нормально. Мне нужно сделать mcrypt доступным для сайтов, на которых работает версия 5.4.16. Естественно я попробовал 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 и не иметь обратной совместимости.

Мне нужно установить mcrypt для 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.

Вуаля, mcrypt теперь работает!

К сожалению, коллекция CentOS SCL для php54 не включает php54-mcrypt.

Вы можете взять SRPM для php-mcrypt-5.4 и изменить спецификацию, изменив имя пакета, место установки и т. Д. В других случаях создайте свой собственный пакет (отметьте rpmbuild).

Или вы также можете использовать rcolletрепозиторий в качестве альтернативы.