我在哪里可以获得 PHP 7 的 php-mcrypt?
Posted
技术标签:
【中文标题】我在哪里可以获得 PHP 7 的 php-mcrypt?【英文标题】:Where can I get php-mcrypt for PHP 7? 【发布时间】:2016-04-13 11:09:35 【问题描述】:我已将 php 升级到 PHP 7,现在看到以下错误 Use of undefined constant MCRYPT_MODE_ECB
。我正在运行 CentOS 7 并且无法更新 php-mcrypt。
我在 Arch Linux 上找到了它,但我不熟悉 Pacman 并且在设置它时遇到了麻烦。
编辑:这就是我现在的位置。我已经尝试删除已安装的软件包以安装所需的软件包,但没有这样的运气。
$ sudo yum install php*
Loaded plugins: fastestmirror
Cannot open: php-7.0.2-1.mga6.src.rpm. Skipping.
Examining php70-php-mcrypt-7.0.0-1.el7.remi.x86_64.rpm: php70-php-mcrypt-7.0.0-1.el7.remi.x86_64
Marking php70-php-mcrypt-7.0.0-1.el7.remi.x86_64.rpm to be installed
Examining php70-php-mcrypt-7.0.0-2.el6.remi.x86_64.rpm: php70-php-mcrypt-7.0.0-2.el6.remi.x86_64
Marking php70-php-mcrypt-7.0.0-2.el6.remi.x86_64.rpm to be installed
Loading mirror speeds from cached hostfile
* base: mirror.cs.pitt.edu
* epel: mirror.symnds.com
* extras: ftp.linux.ncsu.edu
* remi: mirrors.mediatemple.net
* remi-php56: mirrors.mediatemple.net
* remi-safe: mirrors.mediatemple.net
* updates: mirror.atlanticmetro.net
No package php-mcrypt-7.0.2-1-x86_64.pkg.tar.xz available.
Resolving Dependencies
--> Running transaction check
---> Package php70-php-mcrypt.x86_64 0:7.0.0-1.el7.remi will be installed
--> Processing Dependency: php70-php-common(x86-64) = 7.0.0-1.el7.remi for package: php70-php-mcrypt-7.0.0-1.el7.remi.x86_64
---> Package php70-php-mcrypt.x86_64 0:7.0.0-2.el6.remi will be installed
--> Processing Dependency: php70-php-common(x86-64) = 7.0.0-2.el6.remi for package: php70-php-mcrypt-7.0.0-2.el6.remi.x86_64
--> Finished Dependency Resolution
Error: Package: php70-php-mcrypt-7.0.0-1.el7.remi.x86_64 (/php70-php-mcrypt-7.0.0-1.el7.remi.x86_64)
Requires: php70-php-common(x86-64) = 7.0.0-1.el7.remi
Installed: php70-php-common-7.0.2-1.el7.remi.x86_64 (@remi)
php70-php-common(x86-64) = 7.0.2-1.el7.remi
Available: php70-php-common-7.0.1-1.el7.remi.x86_64 (remi)
php70-php-common(x86-64) = 7.0.1-1.el7.remi
Error: Package: php70-php-mcrypt-7.0.0-2.el6.remi.x86_64 (/php70-php-mcrypt-7.0.0-2.el6.remi.x86_64)
Requires: php70-php-common(x86-64) = 7.0.0-2.el6.remi
Installed: php70-php-common-7.0.2-1.el7.remi.x86_64 (@remi)
php70-php-common(x86-64) = 7.0.2-1.el7.remi
Available: php70-php-common-7.0.1-1.el7.remi.x86_64 (remi)
php70-php-common(x86-64) = 7.0.1-1.el7.remi
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
【问题讨论】:
您应该有充分的理由和对加密的充分理解才能使用ECB模式,它通常不是推荐/安全模式。 ECB vs CBC 模式(向下滚动到企鹅)。 这发生在 Magento 的核心文件中。 关于mcrypt,请阅读blog.remirepo.net/post/2015/07/07/… 说真的,不要使用ECB模式。另外,对 Magento 感到羞耻。 @scott 我在哪里可以了解更多关于你为什么提出这个建议的信息?如果需要,我可以扩展类并重写它。 【参考方案1】:sudo yum install php*
这是大错特错,php包有上百个,显然不是你想要的。
您应该使用单个 PHP 存储库,并且只安装所需的包(扩展/库)
对于“remi”存储库,请参阅向导:http://rpms.remirepo.net/wizard/
由于你有 php70-php-common-7.0.2-1.el7.remi.x86_64,你必须使用完全相同的版本,所以 php70-php-mcrypt-7.0.2-1.el7.remi。 x86_64(位于“remi-safe”存储库中)。
【讨论】:
谢谢。您提供的链接起到了作用。不过,我确实必须先卸载冲突。 非常感谢,我遇到了 php56w 和软件包的问题。当我按照您的步骤进行操作时,问题就解决了,您安全了我的一天:D【参考方案2】:我希望你已经解决了问题,请找到相同的扩展链接。
# rmp -qa | grep php
php70w-intl
php70w-soap
# yum install php70w-mcrypt
PHP 扩展链接:https://webtatic.com/packages/php70/
【讨论】:
以上是关于我在哪里可以获得 PHP 7 的 php-mcrypt?的主要内容,如果未能解决你的问题,请参考以下文章