如何在 CentOS 上安装 PHP 5.3?

fiv*_*oda 9 php centos apache-2.2

我必须在我的 CentOS 服务器上安装 PHP 5.3。如果我这样做yum install php,基础存储库会安装 5.1.6,这对于我需要安装的应用程序来说太旧了。所以我一直在尝试使用IUS存储库,遵循IUS的官方说明:

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm

root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm
Run Code Online (Sandbox Code Playgroud)

好的。现在我只是做yum install php53, 等等 我需要的一切......但我收到了这个错误:

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Error Summary
-------------
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题。我想我必须删除基本包。但是,作为 Linux 新手,我不知道该怎么做。

lar*_*sks 8

更新:显然 RHEL 5.6包括 PHP 5.3,所以这将很快在 CentOS 本地显示。

file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64
Run Code Online (Sandbox Code Playgroud)

这里的问题是您正在安装的软件包具有不同的名称(php53 而不是 php),但它们尝试安装相同的文件......因此发生冲突。这不一定是将软件包放在一起的最佳方式,但我不知道是否有更好的软件包可用,因此我们将忽略它。

要删除当前安装的软件包:

# yum remove php-cli php-common php
Run Code Online (Sandbox Code Playgroud)

所以,一般情况下,yum remove <list of packages>会删除包。当然,yum list installed要查看已安装软件包的列表(或rpm -qa)。

  • 根据 CentOS 和最近的 Fedora 版本下的 `yum` 手册页,`remove` 和 `erase` 是同义词。 (2认同)