我正在尝试使用以下脚本安装 php 7:
yum -y install php php-mysql php-pecl-zip php-xml php-mbstring php-gd
但我收到以下错误:
Error: Package: php-7.0.26-1.el7.remi.x86_64 (remi-php70)
Requires: libcrypto.so.10(OPENSSL_1.0.2)(64bit)
Error: Package: php-cli-7.0.26-1.el7.remi.x86_64 (remi-php70)
Requires: libcrypto.so.10(OPENSSL_1.0.2)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
我安装了 openssl 1.0.2 但我再次收到它。
如何才能成功安装php 7?
答案1
对于您的问题,已经存在不干净的安装。由于没有红帽的支持,所以不干净。
有些软件包来自其他渠道,请卸载该软件包。
例如,您可以通过以下方式找到它:
rpm -qa | grep php
或者:
yum list installed | grep php
yum remove pkg-name
要设置干净,您可以用 RHSCL 替换它,但如果您可以使用主流,那么它对于服务器的整个生命周期来说是最好的(这取决于您的应用程序先决条件...)
答案2
通过将此命令yum install php php-mysql php-pecl-zip php-xml php-mbstring php-gd
安装php 5.4.16-X
到 RHEL 官方渠道,该版本具有最佳的 Red Hat 支持。
您将安装 php 基础发行版,并在 Red Hat Enterprise Linux 发行版的整个生命周期内获得最佳的红帽支持。
或者,如果您已注册 RHEL7,则可以使用 Red Hat Software Collections Linux (RHSCL)。它是Red Hat提供的特定通道,与Red Hat不支持的“SCL”不同(以CentOS为例)。请注意,即使红帽给予 2 到 3 年的时间,这些数据包的生命周期和升级也很短。但是安全修复比主流发行版 RHEL7 周期(php 包)更加害羞...如果您选择它,最好是安排从您的应用程序升级到最后一个 php rhscl 版本的 1 年半时间(有一些国王)集成(主要版本 php 更改...)
但是,这个集合在某种程度上几乎得到了红帽的支持(也由 Remi 进行打包,但有官方的红帽支持(票证、理论上的升级安全修复和错误修复)(实际上,少于主流 php 数据包,但有 CVE)好的,但只有当 Red Hat 不希望像主流那样强制时,您始终应该使用最新的 RHSCL 版本,以确保与主流分发数据包具有同等支持)。多个版本(例如,一个遵循标准 Red Hat 版本,另一个遵循标准)。
对于 RHSCL,可能需要向 Red Hat 支持发起特殊请求。
之后您应该能够使用root
:
对于 RH 内容交付网络:
subscription-manager repos --list | grep rhscl
subscription-manager repos --enable rhel-variant-rhscl-7-rpms
对于 RH 网络:
rhn-channel --available-channels
rhn-channel --add --channel=channel_name
yum install rh-php70
或更好(如果您的应用程序兼容):
yum install rh-php71
要查看其他组件rh-php7X
:
yum list available rh-php7X-\*
后:
yum install pkg-name
在带有 RHSCL 的 PHP7.X 中,您可以安装(如果需要,请不要忘记组件 php 模块): -> PHP 7.0.10 rh-php70 PHP 7.0 的一个版本,带有 PEAR 1.10,增强了语言功能和性能改进。 -> PHP 7.1.8 [a] rh-php71 PHP 7.1 的版本,带有 PEAR 1.10、APCu 5.1.8 和增强的语言功能。